关于ADOConnection的一个奇怪的问题,谁能解决立马给分!

krakan 2004-10-08 05:44:58
我在窗体上放了一个ADOConnection组件,如果在设计的时候,我手动设置它的ConnectionString,并且把Connected设为true,那我利用ADOQuery创建表的时候,可以成功创建;但我现在是利用语句:DBConnection->ConnectionString = PromptDataSource(NULL,"");
在ConnectionString省略号中的build中配置;连接信息的,配置好了之后,我再在程序中把Connected设为true,可通过这样的方式连上数据库后,根本无法创建数据库,这是我的源程序:

//动态配置数据库连接
DBConnection->ConnectionString = PromptDataSource(NULL,"");
//把数据库连接信息保存到.ini文件中
ini = new TIniFile( ChangeFileExt( Application->ExeName, ".INI" ) );
ini->WriteString( "Info", "DBCofigration",DBConnection->ConnectionString);
delete ini;
MessageBox(this->Handle,"信息设定成功!","系统提示",MB_ICONINFORMATION);

ini = new TIniFile( ChangeFileExt( Application->ExeName, ".INI" ));
DBConnection->ConnectionString = ini->ReadString( "Info", "DBConfigration", "" );
delete ini;

DBConnection->Connected = true;
// DBConnection->Open();
if(DBConnection->Connected)
ShowMessage("已建立连接");
else
ShowMessage("连接已断开");
...全文
194 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
faretel 2004-10-09
  • 打赏
  • 举报
回复
我用ADO 连 Oracle 9i, 在WIN2000下工作正常, 但在WIN XP 下运行, 当数据集为空时ADOQuery 会有问题.
现暂用 刷新连接的办法可以解决这个问题.
真如实观 2004-10-09
  • 打赏
  • 举报
回复
用ini的方法是这样的:
#include <IniFile.hpp>
TIniFile *ini;
ini = new TIniFile(ExtractFilePath(ParamStr(0))+Config.ini");

char sConnectString[128];

ini->WriteString("Database","Initial Catalog",Edit1->Text);
int->WriteString("Database","Data Source",Edit2->Text);
delete ini;
//--------------------------------------------------------------------------------------
//当读取ini文件时:
StrCopy(sConnectString,"Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=");//把不变的写到字符串sConnectString中,有变化的写到ini文件中

AnsiString str,str1;
str=ini->ReadString("Database",Inital Catalog","数据库名");
StrCat(sConnectString,str.c_str());
str1=ini->ReadString("Database","Data Source","数据库服务器名");

StrCat(sConnectString,";Data Source=");
StrCat(sConnectString,str1.c_str());
delete ini;
ini=NULL;
dm->ADOConn->Connected=false;
dm->ADOConn->ConnectionString=sConnectString;
dm->ADOConn->Connected=true;
......
//大概是这样。
CACACACACA 2004-10-09
  • 打赏
  • 举报
回复
直接Memo->Lines->Add(Connection->ConnectionString);然后Memo->Lines->SaveToFile(filename);更简单。

需要的时候 Connection->ConnectionString = Memo->Text;

krakan 2004-10-08
  • 打赏
  • 举报
回复
udl文件怎么做?
我连的是SQL Server
Santos 2004-10-08
  • 打赏
  • 举报
回复
没看到报错信息,我猜测一下。

你连的是Access数据库吗?

如果是,可能是“\”符号作怪。
真如实观 2004-10-08
  • 打赏
  • 举报
回复
这么无聊,不如使用udl文件.

1,178

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder 数据库及相关技术
社区管理员
  • 数据库及相关技术社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧