如何动态指定要访问的数据库和服务器名(60分)

  • 主题发起人 主题发起人 Ilovelife
  • 开始时间 开始时间
I

Ilovelife

Unregistered / Unconfirmed
GUEST, unregistred user!
开发环境:delphi5.0 oracle 8.0
现在开发机上建立了数据库,程序打包后可能在其他与开发机之联网的自己上运行。
故此登录时可以由用户指定所用的数据库服务器名和oracle数据库登录用户名。想通过动态修改database参数达到目的,但总是不能如愿?
还望大虾赐教。先送一支玫瑰,略表寸心!

/_// .-==/~/
___/_,__,_ __ ____ ____ __)/ /{~}}
---,---,------------------,/'-' {{~}
'-==/}/

 
不好意思,有好多错字。
更正一下!
开发环境:delphi5.0 oracle 8.0 现在开发机上建立了数据库,程序打包后
可能在其他与开发机联网的机子上运行
故此登录时可以由用户指定所用的数据库服务器名和oracle数据库登录用户名。
想通过动态修改database参数达到目的,但总是不能如愿?

 
在程序中添加database控件,设置params参数,指明database名和server名,你
可以将这些内容放在ini文件中,然后读入。例子如下:
with DataModuleMain.data do
begin
close;
keepconnection:=true;
with params do
begin
clear;
add('database name='+inifile.readstring('database','database name',''));
add('SERVER NAME='+inifile.readstring('database','server name',''));
//sybase
{
add('OPEN MODE=READ/WRITE');
add('SCHEMA CACHE SIZE=8');
add('BLOB EDIT LOGGING=');
add('LANGDRIVER=DBWINUS0');
add('SQLQRYMODE=');
add('SQLPASSTHRU MODE=SHARED AUTOCOMMIT');
add('DATE MODE=0');
add('SCHEMA CACHE TIME=-1');
add('MAX QUERY TIME=300');
add('MAX ROWS=-1');
add('BATCH COUNT=200');
add('ENABLE SCHEMA CACHE=FALSE');
add('SCHEMA CACHE DIR=');
add('HOST NAME=');
add('APPLICATION NAME=');
add('NATIONAL LANG NAME=');
add('ENABLE BCD=true');
add('TDS PACKET SIZE=512');
add('BLOBS TO CACHE=64');
add('BLOB SIZE=32');
}
//sqlserver
add('OPEN MODE=READ/WRITE');
add('SCHEMA CACHE SIZE=32');
add('BLOB EDIT LOGGING=');
add('LANGDRIVER=');
add('SQLQRYMODE=');
add('SQLPASSTHRU MODE=SHARED AUTOCOMMIT');
add('DATE MODE=0');
add('SCHEMA CACHE TIME=-1');
add('MAX QUERY TIME=300');
add('MAX ROWS=-1');
add('BATCH COUNT=200');
add('ENABLE SCHEMA CACHE=false');
add('SCHEMA CACHE DIR=');
add('HOST NAME=');
add('APPLICATION NAME=');
add('NATIONAL LANG NAME=');
add('ENABLE BCD=true');
add('TDS PACKET SIZE=4096');
add('BLOBS TO CACHE=1208');
add('BLOB SIZE=32');
if trim(usercode.text)='SA' then
begin
add('user name='+trim(usercode.text));
end else
begin
add('user name='+trim(usercode.text));
end;
add('password='+trim(password.text));
end;
loginprompt:=false;
open;
end;
不好意思,我没有给出oracle的参数,你可以参考,有个办法,将database控件中
参数拷贝下来,再写入程序中.
 
在BDE administrator中查看一下oracle的别名需要一些什么参数
然后再在TDatabase.params中增加上即可, 当然不需要的也可不加
主要有server name, user name, password, 其余的就可不要,但
要注意tdatabase.driver必须是ORACLE.
 
同意spear
 
多人接受答案了。
 
后退
顶部