映射命令如下:
Db2cmd
Db2
//将远程节点192.168.80.207:50001映射为node207本地节点
catalog tcpip node node207 remote 192.168.80.207 server 50001
//映射数据库zcldb到本地node207节点
catalog database zcldb at node node207
2.新增ODBC,连接到本地DB2映射数据库
3.应用程序连接ODBC
连接字符串:
<add name="DB2ConnectionString" connectionString="driver={IBM DB2 ODBC DRIVER}DSN=localdbnameUID=userDBALIAS=localdbnameMODE=SHAREPWD=password" providerName="System.Data.Odbc"/>
c#连接DB2一共有3种方式分别为
一、ODBC
OdbcConnection odbcConn = new OdbcConnection("Driver={IBM DB2 ODBC
DRIVER}Server=localhostDSN=TESTDBUID=usernamePWD=pwdProtocol=TCPIP")
odbcConn.Open()
二、OLE DB
[C#]
OleDbConnection con = new OleDbConnection("Provider=IBMDADB2" +
"Data Source=sampleUID=useridPWD=password" )
con.Open()
参考地址
http://publib.boulder.ibm.com/infocenter/db2luw/v9/index.jsp?topic=/com.ibm.db2.udb.apdv.ms.doc/doc/c0011825.html
这里贴一个我写的连接DB2 返回一个oledbdatareader的类
using System
using System.Collections.Generic
using System.Data.OleDb
public class DB2Helper : IDisposable
{
/// <summary>
/// <DB2>执行查询语句,返回SqlDataReader
/// </summary>
/// <param name="strSQL"><DB2>查询语句</param>
/// <returns>SqlDataReader</returns>
private bool m_disposed//is or not disposed true or flase
OleDbConnection cn=null
OleDbCommand DB2Command = null
private string strQuerySQL=""
public OleDbDataReader ExecuteReaderDB2(string strSQL)
{
strQuerySQL = strSQL
DB2Command = new OleDbCommand(strQuerySQL, cn)
OleDbDataReader rdr = null
try
{
cn.Open()
rdr = DB2Command.ExecuteReader()
}
catch (System.Data.SqlClient.SqlException e)
{
throw new Exception(e.Message)
}
return rdr
}
public DB2Helper()
{
string DB2ConnectionString = @"Provider=IBMDADB2.1Location=xxx.xxx.xxx.xxx:xxxxData Source=TestDB" +
" Persist Security Info=TrueUser ID=xxxxPassword=xxxxCurrentSchemaTestDB"
cn = new OleDbConnection(DB2ConnectionString)
DB2Command = new OleDbCommand()
}
public void Dispose()
{
Dispose(true)
GC.SuppressFinalize(this)
}
protected virtual void Dispose(bool disposing)
{
if (!m_disposed)
{
if (!disposing)
{
// Release unmanaged resources
DB2Command.Connection.Close()
DB2Command = null
cn.Close()
cn = null
}
// Release managed resources
m_disposed = true
}
}
~DB2Helper()
{
Dispose(false)
}
}
三、使用IBM提供的IBM.data.DB2.DLL 的接口进行连接
using IBM.data.DB2
DB2Connection cn = new DB2Connection(
"Database=TESTUserID=db2adminPassword=passwordServer=IS500")
DB2Command myDB2Command = new DB2Command(myInsertQuery)
myDB2Command.Connection = cn
myConn.Open()
myDB2Command.ExecuteNonQuery()
myConn.Close()
其中IBM.data.DB2.DLL在DB2客户端里有
(大概位置是 in X:/Program Files/IBM/SQLLIB/BIN/netf11 )
参考地址
http://publib.boulder.ibm.com/infocenter/db2luw/v8//index.jsp?topic=/com.ibm.db2.udb.dndp.doc/htm/frlrfIBMDataDB2DB2ConnectionClassTopic.htm
虽然没有完全测试完毕,,第二,三种方法,,我确认是必须安装DB2客户端才有办法使用
而且第三种,还必须版本足够高才能正常使用
假设A机使用的是SQLserver吧,所以把sql
server装在A机。(我现在只会用sql
server。。),那你A机的数据库就要启用它的协议,创建或是启用sa账户,这样,其他机子就能访问A机的DB2,然后C机在连接数据库时,数据库的地址就是A机的IP地址,(假如是局域网连接的,就填写A机的本地连接的IP),账户密码就是启用的SA,或是创建的用户(这个用户必须设定权限,简单点就把它设置成sysadmin),这样子,C机就能访问A机的数据库DB2,在做网页或系统的时候,调用数据。C机做好网站或系统后,生成网站,把网站挂在IIS上,稍微设置下,不懂百度下,就几个地方,我就不打出来了。这个样子,B机就不用去连接DB2。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)