关于SQL数据库连接

ndbmz6 2003-10-20 10:38:42
各位高手,我需要一些关于c++builder 连接 SQL数据库连接的关键代码! 以及一些操作说明.谢谢!
...全文
46 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
52vc 2003-10-22
  • 打赏
  • 举报
回复
//测试是否连接成功-----
try
{
AnsiString cnstr="Provider=SQLOLEDB.1; \
Password=wer356b;Persist Security Info=True; \
User ID=sa;Initial Catalog=master;Data Source='"+ComboBox1->Text.Trim()+"';\
Use Procedure for Prepare=1;Auto Translate=True; \
Packet Size=4096;Workstation ID=eer; \
Use Encryption for Data=False; \
Tag with column collation when possible=False ";
main->ADOConnection1->Connected=false;
main->ADOConnection1->ConnectionString=cnstr;
main->ADOConnection1->Connected=true;
}
catch(...)
{
Application->MessageBox("服务器没有正确设置,或服务器已经停止运行.\n请检查服务器是否已经正确的配置!", "错误:", MB_OK);
return;
}
52vc 2003-10-22
  • 打赏
  • 举报
回复
//---检查局域网内启动的服务器
AnsiString temp;
ComboBox1->Items->Clear();
Variant SQLServer;
Variant ServerList;
int i,nServers;
String sRetValue;
SQLServer =CreateOleObject("SQLDMO.Application");
ServerList=SQLServer.OleFunction("ListAvailableSQLServers");
nServers=ServerList.OlePropertyGet("Count");
ProgressBar1->Max= nServers;
ProgressBar1->Position=0;
for (int i=1; i<nServers;i++ )
{
ProgressBar1->StepIt();
temp=AnsiString(ServerList.OleFunction("Item", i));
if(ComboBox1->Items->IndexOf(temp)==-1)
{
if(temp=="(local)")
temp=main->COMNAME;
ComboBox1->Items->Add(temp);
}
}
ProgressBar1->Position=ProgressBar1->Max;
ComboBox1->ItemIndex=0;
SQLServer=NULL;
ServerList=NULL;
ljianq 2003-10-22
  • 打赏
  • 举报
回复
SQLDMO的功能很强大.
ayane 2003-10-21
  • 打赏
  • 举报
回复
huangjuliang(学习,学习,再学习!)的方法好
我也是这么做的

顺便问一句
如果客户端连接呢,在2000SERVER域中的SQL数据库,终端电脑上的程序这样连接也行么
huangjuliang 2003-10-21
  • 打赏
  • 举报
回复
如果是用ADO相连的话,不用设置ODBC的!
cfchhx 2003-10-21
  • 打赏
  • 举报
回复
楼上,顺便问:发布软件时,是在用户机上设置ODBC吗?
huangjuliang 2003-10-20
  • 打赏
  • 举报
回复
你可以这么设置:

选中ADOQuery1->双点ConnectionString属性->Use Connection String ->点Build->双击Microsoft OLE DB Provider For SQL Server

1、选取服务器名
2、输入用户名和密码
3、选取数据!

最后,测试一下,看看就没有成功
一般来说是没有什么问题的!
这样就连接好数据库了
下面就可以写SQL语句了
最后把Active设为true就可以了!(当然这里也可以在程序里实现)

最后ConnectionString里语句大概就如下了:
ADOQuery1->ConnectionString="Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=database;Data Source=IP";

其中sa为用户,database为数据库名,IP为SQL Server 的IP
GodBirdFlying 2003-10-20
  • 打赏
  • 举报
回复
void __fastcall TGlobalDM::Link(TObject *Sender)
{
AnsiString UdlFileName = ExtractFilePath(ParamStr(0)) +"xxxx.udl";

//xxxx.udl 需要设置;
if( FileExists( UdlFileName) == false ){
MessageBox(Application->Handle,"数据库连接文件不存在!\r请重新定义连接文件后再试!","错误",MB_OK|MB_ICONERROR|MB_TOPMOST);
//Application -> Terminate();
return;
}

try{
GlobalConnection->LoginPrompt=false;
AnsiString DataConn ="FILE NAME="+ ExtractFilePath(ParamStr(0)) +"OilWell.udl";
GlobalConnection->ConnectionString = DataConn;
GlobalConnection->Open();
}catch(Exception & e){
AnsiString errorTip = "连接数据库出错!\r出错原因:"+ e.Message;
MessageBox(Application->Handle,errorTip.c_str(),"错误",MB_OK|MB_ICONERROR|MB_TOPMOST);
//Application->Terminate();
return;
}catch(...){
MessageBox(Application->Handle,"连接数据库失败!","错误",MB_OK|MB_ICONERROR|MB_TOPMOST);
//Application->Terminate();
return;
}

}

1,178

社区成员

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

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