【工作心得】timesten应用(开发篇)
安装完成TT后,博主拍着胸脯对领导说没问题,明天给出demo。结果谁知道,接下来的一周博主直拍脑袋,就差拍屁股走人了。废话不多说。
一、为TT创建一个用户,用户名为test,密码为test。
二、还记得安装时说的TNS_ADMIN吗?进入TNS_ADMIN目录下,编辑tnsnames.ora文件
Data Manger:假设DSN为ttsvr
ttsvr =(DESCRIPTION=(CONNECT_DATA = (SERVICE_NAME = ttsvr)(SERVER = timesten_direct)))
Client:假设DSN为ttcs
ttcs =(DESCRIPTION=(CONNECT_DATA = (SERVICE_NAME = ttcs)(SERVER = timesten_client)))
三、安装ODAC,需要注意32bit的TT对应安装32bit ODAC,下载地址:
http://www.oracle.com/technetwork/topics/dotnet/utilsoft-086879.html
64bit TT对应安装64bit ODAC,下载地址:
http://www.oracle.com/technetwork/database/windows/downloads/index-090165.html
配置方法,见博文:
http://blog.csdn.net/holyrong/article/details/6737530
四、完成以上步骤后建立一个.NET控制台程序。将Oracle.DataAccess引用到工程中。
把一下代码复制到工程中,
static string connString = "User Id=test;Password=test;Data Source=ttcs";
public static void SelectFromTT()
{
string sql = "SELECT * FROM TEST_TABLE";
OracleCommand select = null;
try
{
OracleConnection con = new OracleConnection();
con.ConnectionString = connString;
con.Open();
select = new OracleCommand(sql, con);
select.CommandType = CommandType.Text;
OracleDataAdapter ada = new OracleDataAdapter(select);
DataSet ds = new DataSet();
ada.Fill(ds);
int count = ds.Tables[0].Rows.Count;
select.Parameters.Clear();
}
catch (Exception ex)
{ }
}
在本例中ttcs已经在tns文件中配置好了,直接把dsn信息写到代码中也可行,connString则需要改成如下方式
static string ttcs = "ttcs =(DESCRIPTION=(CONNECT_DATA = (SERVICE_NAME = ttcs)(SERVER = timesten_client)))";
static string connString = "User Id=test;Password=test;Data Source=” + ttcs;
如果TT需要通过Cache Connect访问Oracle,需要先安装OracleClient,配置好oracle TNS,即在oracleHome \Network\Admin目录下tnsnames.ora。博主将oracle和TT的TNS文件共用,就是在这个目录下。然后配置Cache Connect,由于这部分是公司DBA完成的,所以博主没有过多研究这块,推荐博文:
http://hua04104.iteye.com/blog/1133442
连接字符串要改成如下形式static string connString = "Data Source=ttcs;User ID=test;Password=\"test;OraclePwd=mypswd;OracleNetServiceName=mydb;passthrough=1\"";
假设oracle数据库密码为mypswd,oracle服务名在tns中配置为mydb。
当程序在TT中没有取到数据的时候,会自动到oracle中去查询。
一个简单的.NET访问TT的Demo就可以了。在做web服务(比如说webservice)的时候,在部署的时候可能会遇到另一个问题。
Could not load file or assembly 'Oracle.DataAccess' or one of its dependencies. 试图加载格式不正确的程序。解决方法可参考:http://www.supesoft.com/ArticleDisp.asp?ID=4872
C++访问TT,有官方提供的TTClass,博主只是简单的使用官方例子进行了测试,例子在安装目录quickstart\sample_code\ttclasses目录下。但是在使用前需要进行一些配置。参考博文:
http://space.itpub.net/26107758/viewspace-714563