首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ Builder >

C++Builder访问服务器端数据库,该怎么处理

2012-02-08 
C++Builder访问服务器端数据库请教如何利用C++Builder开发一个简单的客户端向服务器端访问数据库.需要用到

C++Builder访问服务器端数据库
请教如何利用C++Builder开发一个简单的客户端向服务器端访问数据库.
需要用到哪些组建,要怎么配置?
假设数据库类型为SQLServer

客户端和服务器端的代码都要.

可以给我具体资料,或者具体代码(必要注释),谢谢.


[解决办法]
这种例子网上很多
[解决办法]
很多软件都包括数据库的部分,这个很常见,一般用几个ADO的控件就可以了
例子还是要看看的,从头开始说太累,先试一下,遇到问题再发贴问.
[解决办法]
ADO组件很方便,随便看看就会了,如果想弄成三层的可以用Dcom等
[解决办法]

引用楼主 binghe2007 的帖子:
请教如何利用C++Builder开发一个简单的客户端向服务器端访问数据库.
需要用到哪些组建,要怎么配置?
假设数据库类型为SQLServer

客户端和服务器端的代码都要.

可以给我具体资料,或者具体代码(必要注释),谢谢.

[解决办法]
void __fastcall TDataMod::TelDataInit(void)
{
String connStr="",tempStr="";
TIniFile *ini;

try
{
ADOConn1->Close();
// connStr="Provider=SQLOLEDB.1;Password=xzsat;Persist Security Info=True;User ID=sa;Initial Catalog=daw;Data Source=XJQ-SAT";

ini=new TIniFile(".//SAS_Config.ini");
tempStr=ini->ReadString("dataBase","数据库类型","SQLSERVER");
ini->WriteString("dataBase","数据库类型",tempStr);
if(tempStr=="SQLSERVER") //连接SQL SERVER
{
connStr="Provider=SQLOLEDB.1;Persist Security Info=True;";
tempStr=ini->ReadString("dataBase","密码","xzsat");
ini->WriteString("dataBase","密码",tempStr);
connStr+="Password="+tempStr+";" ;
tempStr=ini->ReadString("dataBase","用户名","sa");
connStr+="User ID="+tempStr+";" ;
ini->WriteString("dataBase","用户名",tempStr);
tempStr=ini->ReadString("dataBase","数据库名称","daw");
connStr+="Initial Catalog="+tempStr+";" ;
ini->WriteString("dataBase","数据库名称",tempStr);
tempStr=ini->ReadString("dataBase","服务器名(IP)","XJQ-SAT");
connStr+="Data Source="+tempStr+" " ;
ini->WriteString("dataBase","服务器名(IP)",tempStr);
}
else //连接ACCESS
{
// Provider=Microsoft.Jet.OLEDB.4.0;Password=123;Data Source=E:\VehData.mdb;Persist Security Info=True
connStr="Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=True;";
tempStr=ini->ReadString("dataBase","密码","");
ini->WriteString("dataBase","密码",tempStr);
connStr+="Password="+tempStr+";" ;
//tempStr=ini->ReadString("dataBase","用户名","Admin");
//connStr+="User ID="+tempStr+";" ;
//ini->WriteString("dataBase","用户名",tempStr);
tempStr=ini->ReadString("dataBase","数据库名称","E:\VehData.mdb");
connStr+="Data Source="+tempStr+";" ;
ini->WriteString("dataBase","数据库名称",tempStr);
}
delete ini;

ADOConn1->ConnectionString=connStr;
ADOConn1->Open();

if(ADOConn1->Connected)
{
//Memo1->Lines->Add("数据库连接成功……");

TStringList* List=new TStringList;
int j=0;
ADOConn1->GetTableNames(List,false);
//案件表
tempStr= FormatDateTime("'Case_'yyyymm",Date());


for(j=0;j<List->Count;j++)
{
if(tempStr==(List->Strings[j]))
break;
}
if(j>=List->Count)
AddCaseTable();
CaseTable->Close();
CaseTable->TableName=tempStr;
CaseTable->Open();
CaseTable->Last();
//数据表

tempStr= FormatDateTime("'Veh_'yyyymm",Date());
/*for(j=0;j<List->Count;j++)
{
if(tempStr==(List->Strings[j]))
break;
}
if(j>=List->Count)
AddDataTable(); */
InsertTable->Close();
DisplayTable->Close();
InsertTable->TableName=tempStr;
DisplayTable->TableName=tempStr;
InsertTable->Open();
InsertTable->Last();

//用户表
tempStr="UserTable";
for(j=0;j<List->Count;j++)
{
if(tempStr==(List->Strings[j]))
break;
}
if(j>=List->Count)
AddUserTable();
UserTable->Close();
UserTable->TableName=tempStr;
UserTable->Open();
UserTable->Last();

delete List;
}

}
catch(...)
{
// ShowMessage("远程数据库连接失败,\n请检查网络连接和服务器!");
}
}
//---------------------------------
void __fastcall TDataMod::AddUserTable()
{
String tempStr,sqlStr,Index;
 try
 {
Index =FormatDateTime("'User_'yyyymm",Date());
tempStr="UserTable";
sqlStr="CREATE TABLE "+tempStr+"( ID INTEGER ,"
+"UserDateTIME DATETIME,UserID CHAR(20), "
+"UserName CHAR(20),Password CHAR(20),level INTEGER"
+")" ;
TempQuery->Close();
TempQuery->SQL->Clear();
TempQuery->SQL->Add(sqlStr);
TempQuery->ExecSQL();
sqlStr="CREATE INDEX "+Index+" ON "+tempStr+" (ID ASC)";
TempQuery->Close();
TempQuery->SQL->Clear();
TempQuery->SQL->Add(sqlStr);
TempQuery->ExecSQL();
TempQuery->Close();
sqlStr="insert into UserTable (ID,UserID,UserName,Password,level) values(1,'78403','管理员','30487',6) ";
TempQuery->Close();
TempQuery->SQL->Clear();
TempQuery->SQL->Add(sqlStr);
TempQuery->ExecSQL();
TempQuery->Close();
 }
 catch(...)
 {
//
 }
}

热点排行