很奇怪的,BDGrid这是咋的了?---查不多搞定了,不关BDGrid的事。请帮忙看看!谢谢!---200 (200分)

  • 主题发起人 主题发起人 jrq
  • 开始时间 开始时间
J

jrq

Unregistered / Unconfirmed
GUEST, unregistred user!
各位好,有礼了!
问题描述如下:
环境:RedHat 7.1 + Oracle817 for Linux + kylix2 。
kylix安装在根用户下,oracle817安装在Oracle用户下。
在根用户下运行Kylix2。
用dbExpress:SQLConnection与oracle已经连上,SQLQuery、SQLTable均没有问题。
问题:1。在设计期间,用SQLTable:
当BDGrid 与 DataSouece 相连时,此时不管SQLTable的Active状态是否为True或False,
都会弹出一个警告框:“Operation not allowed on a unidirectional dataset”!
而其他Data Controls控件,如 DBNavigator、DBText、DBEdit等等都没有问题(可以运行)。

2。不用SQLTable,改用SQLQuery,在运行期间执行动态SQL:
使用BDGrid,也会弹出警告框:“Operation not allowed on a unidirectional dataset”!
而使用其他Data Controls控件则运行正常。
(“不允许单项数据集操作”---什么意思??没有见过)

很奇怪的,BDGrid这是咋的了? 还是我的使用有问题啊?
用不用进行一些其他的设置?
请有经验的DFW大侠们帮忙! 多谢!

另,在Oracle用户下安装Kylix2后运行,老是出现“IDE Internal Error”的错误,
并且Kylix 和 X也会死掉。 这大概是安装Oracle时引起的,怎么解决? 谢谢!
 
unidirectional设置为True
 
Kylix压根儿没用过。。。。。
 
to maming: 多谢,但是
>>unidirectional设置为True
老大,unidirectional 是那个属性? 那个控件的? 我怎么找不到?
to Nizvoo:不怕,kylix装上就是D6,上手。
 
jrq老兄,唔又来帮你up了,[8D]
上次你问的,没错我在北京!
 
to 哈利波特: [:)] 谢谢! 有机会北京见!
 
SQLQuery.unidirectional=True就表示是单向操作,也就是不返回数据。所以你要设置为Fase.
 
谢谢maming老兄!我查了一下帮助文件,是SQLQuery.IsUniDirectional。
但是这是个对于SQLQuery来说是个只读属性(read-only property),无法改变。
帮助文件说:
You can’t use a unidirectional dataset as the source to a data-aware grid.
数据感知控件不能使用单向数据集,这个我知道,但是SQLQuery应该不是单向的啊!
并且我使用其他Data Controls控件都很正常的,唯独这个DBGrid有问题,偏偏DbGrid又是最常用的!
我已经重装了一边系统,把kylix2也重装了一边,问题依然。
我不知道各位FW的Kylix是不是也曾遇见这个问题? 怎样解决的?
如果问题解决不掉,那我就是怀疑我down的kylix有问题了!
 
发现新问题:在D6中使用dbExpress,DBGrid存在同样的问题,其他Data Controls控件正常。
以前没有用过dbExpress的东东,现在出问题了才知道,因为Kylix下只有用dbExpress了。
看来这个号称 跨平台的东东不听使唤啊。
好了,现在知道问题了。应该问使用过dbExpress的DFW了。

请问各位DFW,D6遇到过这样的问题吗?
“Operation not allowed on a unidirectional dataset”!请帮忙解答一下。 多谢!!
我使用dbExpress连接的是Oracle817。
SQLConnection.Params的设置是:
BlobSize=-1
DataBase=orcl-server
DriverName=Oracle
ErrorResourceFile=
LocaleCode=0000
Password=manager
Oracle TransIsolation=ReadCommited
User_Name=system
 
帮你提前.!
 
帮你提前.!
 
没有做地kylix下的程序,可是还是想看看;
 
UP一下没分了。
帮你提前一下
 
用dbExpress -> DataSetProvider -> ClientDataSet -> DataSource ->DBGrid
 
多谢jiangxiancheng老兄指点!
我没有写3层的东东,只是简单的测试,所以用不到DataSetProvider 和 ClientDataSet。
ClientDataSet和dbExpress中的SQLConnection大概连不上吧!
不过我看了dbExpress中的东东,找到了SQLClientDataSet,连上了SQLConnection,
写了SQL,试了一把,果然可以。 D6和kylix均畅通无阻!很爽!
弄SQLQuery、SQLTable都晕头了,根本没有看别的! [:)]
再次感谢jiangxiancheng老兄!(从名字上看,说不定我们是本家呢,呵呵)

但SQLQuery、SQLTable是怎么用的? 果真是单向的? 不能返回数据?
 
提一下。
想联系一下用Kylix(现在K3都出来了)做东东的朋友。
 
jrq兄,我现在才不太忙了,有时间帮我装上linux+Oracle+Kylix呀
 
to 四库兄弟 :
这个没问题。 只是可怜我还在加班。 没有周末了........
 
dbexpress只支持单向数据连接.我为此还专门到海淀图书城查了查资料.
如果要用dbgrid显示数据的话,必须通过clientdataset将数据做本地缓存,
也就是相当于一临时表.
给我的感觉是delphi自带的vcl有时用起来真的是很麻烦.找找第三方控件吧.
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
1K
DelphiTeacher的专栏
D
后退
顶部