起步软件技术论坛-X3

 找回密码
 立即注册
搜索
查看: 195|回复: 13

【搞定】query.execute 报错 “无效的连接字符串类型:Exception”

[复制链接]
发表于 2007-12-17 11:02:28 | 显示全部楼层 |阅读模式
procedure TMainForm.Button2Click(Sender: TObject);
var
  queryXZ : Tquery;
begin
  if Business.Forms.jsdialogs.QuestionBox('确定要删除'''+DataSetBroker1.DataSet.FieldByName('YEAR').AsString+'''年'''+DataSetBroker1.DataSet.FieldByName('MONTH').AsString+'''月的薪资数据吗?','确认',2)=6
  then
        begin
        queryXZ:= TQuery.Create(self);
        with queryXZ do
        queryXZ.ConnectionString := 'Biz:MASTERMINDmastermind.Database';
        queryXZ.CommandText := 'delete from XZ where XZ.YEAR='''+DataSetBroker1.DataSet.FieldByName('YEAR').AsString+''' and XZ.MONTH='''+DataSetBroker1.DataSet.FieldByName('MONTH').AsString+'''';
        Business.Forms.jsDialogs.ShowMsg(queryXZ.CommandText,'语句');
        queryXZ.Execute;
        end;
end;

报错行停留在queryXZ.Execute;这一行,运行时showmessage倒是可以弹出正确的sql语句的。

附件是监视的内容

baocuo.jpg

21.44 KB, 下载次数: 107

回复

使用道具 举报

发表于 2007-12-17 11:13:53 | 显示全部楼层
procedure TMainForm.Button2Click(Sender: TObject);
var
  queryXZ : Tquery;
begin
  if Business.Forms.jsdialogs.QuestionBox('确定要删除'''+DataSetBroker1.DataSet.FieldByName('YEAR').AsString+'''年'''+DataSetBroker1.DataSet.FieldByName('MONTH').AsString+'''月的薪资数据吗?','确认',2)=6
  then
        begin
        queryXZ:= TQuery.Create(self);
try
        queryXZ.ConnectionString := 'Biz:\MASTERMIND\mastermind.Database';
        queryXZ.CommandText := 'delete from XZ where XZ.YEAR='''+DataSetBroker1.DataSet.FieldByName('YEAR').AsString+''' and XZ.MONTH='''+DataSetBroker1.DataSet.FieldByName('MONTH').AsString+'''';
        Business.Forms.jsDialogs.ShowMsg(queryXZ.CommandText,'语句');
        queryXZ.Execute;
finally
queryXZ.free;
end;
        end;
end;
看看
回复 支持 反对

使用道具 举报

发表于 2007-12-17 11:16:16 | 显示全部楼层
queryXZ.ConnectionString 应该这样写
'DATABASEURL=Biz:\MASTERMIND\mastermind.Database'
回复 支持 反对

使用道具 举报

发表于 2007-12-17 11:18:31 | 显示全部楼层
queryXZ.ConnectionString := 'Biz:\MASTERMIND\mastermind.Database';
写错了,
queryXZ.ConnectionString := 'DATABASEURL=Biz:\MASTERMIND\mastermind.Database';
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-12-17 11:19:18 | 显示全部楼层
哦,对对对,实在不好意思,低级错误。
还有个问题
我现在usiness.Forms.jsdialogs.QuestionBox弹出的对话框年和月是带''的,请问如何去除?
现在是“确定要删除'2007'年'12'月的薪资数据吗?”
回复 支持 反对

使用道具 举报

发表于 2007-12-17 11:32:57 | 显示全部楼层
去掉就可以了贝,你是怎么传进去这个字符串呢?
回复 支持 反对

使用道具 举报

发表于 2007-12-17 11:40:42 | 显示全部楼层
Questionbox里面的内容是您自己写的。您不要加引号就可以了
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-12-17 12:18:53 | 显示全部楼层
我的年月是从数据集里取的,取的时候就带上''了
Business.Forms.jsdialogs.QuestionBox('确定要删除'''+DataSetBroker1.DataSet.FieldByName('YEAR').AsString+'''年'''+DataSetBroker1.DataSet.FieldByName('MONTH').AsString+'''月的薪资数据吗?','确认',2)
.                                                                                                                                                                                         .
.                                                                                                                                                                                         .
回复 支持 反对

使用道具 举报

发表于 2007-12-17 13:38:44 | 显示全部楼层
Business.Forms.jsdialogs.QuestionBox('确定要删除'+DataSetBroker1.DataSet.FieldByName('YEAR').AsString+'年'+DataSetBroker1.DataSet.FieldByName('MONTH').AsString+'月的薪资数据吗?','确认',2)
回复 支持 反对

使用道具 举报

发表于 2007-12-17 13:40:19 | 显示全部楼层
是你自己错了,2007前面 '  是因为“'确定要删除'''”这个串造成的
应该写为,跟取字段的值“DataSetBroker1.DataSet.FieldByName('YEAR').AsString”没有关系,正确应该:

Business.Forms.jsdialogs.QuestionBox('确定要删除'+DataSetBroker1.DataSet.FieldByName('YEAR').AsString+'年'+DataSetBroker1.DataSet.FieldByName('MONTH').AsString+'月的薪资数据吗?','确认',2)
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-7-3 10:30 , Processed in 0.045093 second(s), 18 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表