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

BCB2010 DBX 的問題解决方法

2012-02-21 
BCB2010 DBX 的問題裝上了BCB2010 UP4 UP5生成一個 SQLConnection , 正常連接,可是如下簡單代碼,發生故障:

BCB2010 DBX 的問題
裝上了BCB2010 UP4 UP5 

生成一個 SQLConnection , 正常連接,可是如下簡單代碼,發生故障:程序無法退出。即關閉程序後,程序依然駐留不能退出。如果有裝 2010的,請試一下,不知何原因,如何解決。

C/C++ code
#include <vcl.h>#pragma hdrstop#include "Unit1.h"#include <SqlExpr.hpp>//---------------------------------------#pragma package(smart_init)#pragma resource "*.dfm"TForm1 *Form1;TSQLConnection *SQLConnection = NULL ;//---------------------------------------__fastcall TForm1::TForm1(TComponent* Owner)    : TForm(Owner){    SQLConnection = new TSQLConnection(NULL);    SQLConnection->ConnectionName = "MSSQLConnection";    SQLConnection->DriverName = "MSSQL";    SQLConnection->GetDriverFunc = "getSQLDriverMSSQL";    SQLConnection->LibraryName = "dbxmss.dll" ;    SQLConnection->VendorLib = "sqlncli10.dll";    SQLConnection->LoadParamsOnConnect = false;    SQLConnection->KeepConnection = true ;    SQLConnection->LoginPrompt = false;    SQLConnection->Params->Text =              "DriverName=MSSQL"             "\nHostName="             "\nDataBase=MyDBS"             "\nBlobSize=-1"             "\nUser_Name="             "\nPassword="             "\nErrorResourceFile="             "\nLocaleCode=0000"             "\nMSSQL TransIsolation=ReadCommited"             "\nOS Authentication=True"             "\nPrepare SQL=False"             "\nMars_Connection=False"                         "\nSchemaOverride=sa.dbo"             "\n";  SQLConnection->Connected = true ; //如果將這名注釋掉,程序可以正常退出。}//---------------------------------------__fastcall TForm1::~TForm1(){  delete SQLConnection ;}


[解决办法]
木用2010, 帮顶.
[解决办法]
SQLServer2008 要裝.net 3.5 
由於XX原因 我的電腦不能安裝.net3.5
不能幫和樓主一起測試
只能幫頂
[解决办法]
没SQL Server,在盒子上看过相似的问题,建议安最新版的SQL Server.
DBX连mssql和mysql数据库的错误,与数据库的版本有一定关系.
一般都是安装相对应的数据库.好方法不清楚.
这两个数据库我都不用.
[解决办法]
还没用到这么高的版本
[解决办法]
关闭一下SQLConnection看看
[解决办法]
木用2010, 帮顶.
[解决办法]
问题应该出在 delete SQLConnection; 上,建议关闭连接后销毁,或者指定其父对象,由父对象负责它的销毁
[解决办法]
单位里没环境,回家后试,先mark一下
如果加个头文件#include <DBXMsSQL.hpp>就能解决,也没什么大问题,EHLIB控件在连接数据库时也要针对不同的数据库用不同头文件,而且可同时加上几个以联多个数据库

[解决办法]
我的TSQLConnection 只要在界面上加入,如果是连接SQLSERVER就会自动加入
#include <DBXMsSQL.hpp>
#include <SqlExpr.hpp>
如果是连接oracle就会自动加入
#include <DBXOracle.hpp>
你因为是动态创建的,所以也要手工加入相应的头文件,否则即使能编译运行也可能出错
这在bcb中是常见的

[解决办法]
200分啊,不会也要进来顶顶
[解决办法]
  在窗体的构造函数里直接SQLConnection->Connected = true;从来没这么用过,建议在FormShow事件里PostMessage一个消息给本窗体,异步起动连接过程;另外不能直接delete SQLConnection;了事,要先SQLConnection->Connected = false;



  还有,如果没有特别原因建议建立一个数据模块,把需要用到的对象直接在设计时放在数据模块上面,以后可以分到多线程里处理,像你现在这样new 来new去的,还不如直接设计时放在窗体上。

热点排行