数据库程序开发的几个问题。 做一个Data Module 在里面放TDataBase控件连接数据库,在其他子窗口里放Tquery控件,将其databasename属性设为TDataBase,这样就可以在窗口中查询表了,想查那个都行,select field1,field2,... from 表1(表2、3...) where ... 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 meijg,您好!事实上我就是这么做的,可是当打开的窗口一多时,BDE报错说:在open语句中指定的游标已经打开,不知何故?(数据服务器用的是DB2). halfdram,您好:我原来也想这么做的,问题是每个子窗口所要连接的表的名称和数量都不一样,而且数目也较多,是不是有什么好方法呢? 有很多解决方案:1、用Data Module,如果实在没有办法,可以建立多个TTable而指向同一个表(我怀疑你一下打开那么多表干吗?);2、USE所要调用的表所在的表单(窗口1中连接表A,同时须查询表B和C,那么可以直接在窗口1中连接窗口2和窗口3);推荐用第一种方法! 再需要的时候动态生成Query和Table。在BCB中如下:TQuery * pQuery=new TQuery(this);pQuery->DatabaseName="DataBase1";pQuery->SQL->Clear();pQuery->SQL->Add(...);........pQuery->Close();delete pQuery;Delphi中应该也可以这样写。 清泉不用tquery做,最好不要用ttable,不要用独占方式打开数据库,这种情况很可能是重复打开同一个数据库的原因 请全部用tquery做,最好不要用ttable,不要用独占方式打开数据库,这种情况很可能是重复打开同一个数据库的原因 没有必要,不要开太多窗口。 应用比较复杂的时候,你甚至可以一个窗体对应一个数据模块, 关键是保持逻辑上清晰,很多与界面无关的就可以写在数据模块中。 打开的Table 不用时要及时CLOSE,减少数据出错的可能性。 你连接的是数据库服务器,建议多用TQuery, 少用TTable. 有些东西比较微妙。你有了自己对它的感觉就会知道, 诸位:全部用Tquery做的话,如何对大字段进行更新呢? 按你提供的说明可能是你使用多线程时在不同窗口同时对一个table进行查询或其他数据库操作动作,建议你在各窗口使用不同的查询(query)控件,同时将与底层数据库的连接放在datamodule中。多线程的资料可以在下面链接找到答案:http://www.csdn.net/books/bookview.asp?id=9如果还希望有什么别的要帮忙,请EMAIL:[email protected] 各位大侠:我仔细地跟踪了一下,发现是打开Table时出错,而此时并无其它的Table处于打开状态,到底是何原因?会不会是BDE的问题或是DB2的问题? 该表已经被打开,打开新form时判断一下该表是否被打开,打开了,就不必在open了 在TDatabase所在的窗体上放一个TSession对象也许可以解决问题。 在使用表之前,先将其TDataBase和TTable都Close,试一下,最好还是用TQuery 请教delphi如何调用外部的公式? 隐藏命令提示符窗口在任务栏上显示 IdFTP多线程 哪位大虾能告诉我怎么取消Fastreport输出报表的未注册字样? 关于PageControl的问题 为什么断开ADO连接后重新连接,在ODBC的连接字符串中不选择服务器也能成功? 关于图表 关于打印的问题! 在哪有Install Shield 6.3(或者5.0版本,除了7.0)的下载地址? 急,如何判断当前windows账号是否已经设置密码 4:怎样在输入姓王的时候(在edit),就能查询到相应的数据库记录 如何调用ODBC的API?
事实上我就是这么做的,可是当打开的窗口一多时,BDE报错说:
在open语句中指定的游标已经打开,不知何故?(数据服务器用的是DB2).
我原来也想这么做的,问题是每个子窗口所要连接的表的名称和数量都不一样,而且数目也较多,是不是有什么好方法呢?
2、USE所要调用的表所在的表单(窗口1中连接表A,同时须查询表B和C,那么可以直接在窗口1中连接窗口2和窗口3);推荐用第一种方法!
TQuery * pQuery=new TQuery(this);
pQuery->DatabaseName="DataBase1";
pQuery->SQL->Clear();
pQuery->SQL->Add(...);
....
....
pQuery->Close();
delete pQuery;
Delphi中应该也可以这样写。
应用比较复杂的时候,你甚至可以一个窗体对应一个数据模块, 关键是保持逻辑上清晰,很多与界面无关的就可以写在数据模块中。
打开的Table 不用时要及时CLOSE,减少数据出错的可能性。
你连接的是数据库服务器,建议多用TQuery, 少用TTable.
有些东西比较微妙。你有了自己对它的感觉就会知道,
全部用Tquery做的话,如何对大字段进行更新呢?
http://www.csdn.net/books/bookview.asp?id=9
如果还希望有什么别的要帮忙,请EMAIL:[email protected]
我仔细地跟踪了一下,发现是打开Table时出错,而此时并无其它的Table处于打开状态,到底是何原因?会不会是BDE的问题或是DB2的问题?