求助急!!!!!!!!!!!!!!(20分)

  • 主题发起人 主题发起人 hrc378
  • 开始时间 开始时间
H

hrc378

Unregistered / Unconfirmed
GUEST, unregistred user!
我在客户端用CLIENTDATA的时候对COMMANDTEXT赋值来进行查询时
运行显示Cannot perform this o peration on an open dataset.
这是什么原因呢?
各位大侠帮忙啊!
 
先CLOSE后再OPEN.
 
提示是不能操作一个打开的数据集阿,先close掉吧
 
這20分是我的了
你把服務程序裡面的DataSetProvider的Option屬性中的poAllowCommandText設置為true
就可以了
給分~|~
 
同意楼上的,我以前也是这样处理这个问题的
 
to xiaolinj79
我那个已经设过了还是不行啊
 
应该是需要Close 的,你再写详细些好吗?
 
先CLOSE后再OPEN
 
帖出部分代碼看看
出那個錯誤提示的原因有多個可能
像他們說的那樣
with ClientDataset1do
begin
close;
CommandText:=Sql;
try
open;/execute;
//這裡用什麼和你的SQL有沒有返回數據集來選擇使用哪個
except
出錯處理
end;
end;
 
我的代码是:
begin
with DataModule1.ClientDataSet1 do
begin
Close;
commandtext:='Select * from OperatorCode where UserNo='''+CBUser.Text+''' and UserPsw='''+Epass.Text+'''';
Open;
if RecordCount <>0 then
begin
Application.CreateForm(tMainFrm,MainFrm);
MainFrm.Show ;
end
else
Application.MessageBox('请确认用户登录信息!','错误',mb_ok);
end;
 
怎么没人回答啊
没人遇到过吗?
不可能吧,我急啊
帮帮忙!
 
现在的问题变成了 对象名'Select * from OperatorCode where UserNo='' and UserPsw=''无效;
 
把代碼發給我,我幫你看看
jian.lin@mingfaigruop.com
 
就是这一段了
begin
with DataModule1.ClientDataSet1 do
begin
Close;
commandtext:='Select * from OperatorCode where UserNo='''+CBUser.Text+''' and UserPsw='''+Epass.Text+'''';
Open;
if RecordCount <>0 then
begin
Application.CreateForm(tMainFrm,MainFrm);
MainFrm.Show ;
end
else
Application.MessageBox('请确认用户登录信息!','错误',mb_ok);
end;

它老是提示参数'Select * from OperatorCode where UserNo='''+CBUser.Text+''' and UserPsw='''+Epass.Text+''''无效,
不过我看别人和我做的是一样
他们怎么可以,我为什么不行!如果像BDE TABLE那样写的不会出错
只要用SQL就出错,真奇怪!
 
兄弟,你的SQL语句好象有问题,我有好久没用DELPHI了,不过
我记得当年在DELPHI中写SQL语句时,带参数时,都是这样写的:
SQLSTR:='SELECT * FROM TABLENAME WHERE USERNO='''''+CBUSER.TEXT+''''+......;
你的写法我没试过,不知道是不是也可以。
 
为什么发了一文章(青年报上的),账号封了就不开放?妈的!有这么严重吗?
LanHer的id,你看看哪个贴子值得你账号封几个月?这次发火以后再也不来了,
以前没事帮入门者解决一点初级问题,现在看来,这里是他妈的狗si管理员!
富翁名称: LanHer
专 家 分: 1960
可用积分: 2441
 
你的SQL语句有点问题,可以改动如下:
sqlString := 'select * from OperatorCode where UserNo='
+ '''' + User.Text+ ''' and ';
sqlString := sqlString + ' UserPsw=' + '''' + Epass.Text+ '''';
 
你们的答案全部是错的
我已经解决了,谢谢各位的光临
 

Similar threads

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