CB数据库SQL动态连接,高手请进!!欢迎欢迎!!
用ADOConnection动态连SQLSERVER或静态连接都会出现一个问题:在数据应用程序打包后装到另一机子时,由于SQL的服务器名未知或与应用程序所设的服务器名不一致而出现死机,为此只有重新装SQL并使其名与应用程序所设的服务器名相同,有没有一更好的办法???,高手多多指教,一定给满分!!! 问题点数:0、回复次数:7Top
1 楼nobill(阿宝)回复于 2003-06-03 18:35:37 得分 0
单机版的建议你把服务器改为127.0.0.1,就可以的!Top
2 楼foilsman(刀仔)回复于 2003-06-03 19:22:18 得分 0
Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=test;Data Source=(local)
为什么不用读取INI文件的方式来动态配置?Top
3 楼flyfeel(图灵)回复于 2003-06-03 19:35:30 得分 0
ConnectString放在配置文件中,可编辑Top
4 楼yydy(一条活鱼)回复于 2003-06-06 16:41:57 得分 0
为什么不用读取INI文件的方式来动态配置?
如何做?
能不能详细点Top
5 楼dfdscx(风中独狼)回复于 2003-06-06 17:29:00 得分 0
关注Top
6 楼oishi(农夫XP)回复于 2003-06-06 23:57:21 得分 0
可以用INI和注册表呀!
可以交流的!Top
7 楼tinderman(塞外飞鹄)回复于 2003-06-07 10:12:41 得分 0
//创建DB.ini文件存储连接参数
TIniFile *ini;
ini = new TIniFile(ExtractFilePath(Application->ExeName)+"DB.INI" );
ini->WriteString( "DB Info", "DataSource",EditDataSource->Text);
ini->WriteString( "DB Info", "UserID", EditUserID->Text);
ini->WriteString( "DB Info", "Password", EditPassWd->Text);
delete ini;
//数据模块中
void __fastcall TFrmDM::DataModuleCreate(TObject *Sender)
{
AnsiString UserID,PassWd,Catalog,Catalog_Master,DataSource;
UserID="sa";
PassWd="";
Catalog_Master="master";
Catalog="mobiledb";
if (!FileExists(ExtractFilePath(Application->ExeName)+"DB.INI")) {
FrmDbInfo=new TFrmDbInfo(this);
FrmDbInfo->ShowModal();
}
TIniFile *ini;
ini = new TIniFile(ExtractFilePath(Application->ExeName)+"DB.INI");
DataSource=ini->ReadString("DB Info","DataSource","(local)");
UserID=ini->ReadString("DB Info","UserID","sa");
PassWd=ini->ReadString("DB Info","Password","");
delete ini;
try {
ConnectDataSet(ADOConnection_Master, PassWd, UserID, Catalog_Master,DataSource);
ConnectDataSet(ADOConnection, PassWd, UserID, Catalog,DataSource);
} catch(...) {
Application->MessageBox("数据源连接失败,请检查参数设置!","错误",MB_OK+MB_ICONERROR);
DeleteFile(ExtractFilePath(Application->ExeName)+"DB.INI");
exit(1);
}
}Top



