通过dbExpress连接MYSQL或其它SQL服务器的问题(50分)

J

jianlei

Unregistered / Unconfirmed
GUEST, unregistred user!
通过dbExpress连接MYSQL或其它SQL服务器时,使用DBGrid显示数据,会出现“Operation not allowed on a unidirectional dataset”,用BDE,SQLMDAC,SQL Direct都不会出现这个问题。各位又是怎样解决的呢?
 
巨关注!
 
那个属性没有设置好,重新设置每个属性即可
 
你的DataSource是单向的,比如是query之类的
 
可能你使用了TSQLTABLE,TSQLQUERY等单向游标组件,
这些组件一般不能直接连接数据敏感控件,如DBGrid,DBNavigator
应使用TClientdataset转换。
 
you should read the dbexpress's helpi agree codesmall's
 
SQLconnection -> SQLDataSet --> DataProvider
--> ClientDataSet --> DataSource --> DbGrid

SQLDataset只会作单向的cursor, 所以令他很快, 但是无buffer, 所以不可回转.
调用clientdataset, 即在客户端建立 data buffer, 便可使用dbgrid了.
 
同意 erickleung
SQLconnection -> SQLDataSet --> DataProvider
--> ClientDataSet --> DataSource --> DbGrid
此结构是个三层结构,
to: jianlei
如果你对dbExpress感兴趣,
推荐你去看看<<Delphi/Kylix数据库开发>>一书

 
同意codesmall
clientdataset可解决
 
接受答案了.
 
顶部