小弟做了一个借书的功能,想在借阅信息表插入一行数据的 但我插入数据的时候报错了
错误:“不正常地定义参数对象,提供了不一致或不完整的信息。”
可能问题出在红字上 向各路高手请教。。
程序如下:
procedure Tfrm_jsqr.Button1Click(Sender: TObject);
var
b:integer;
c:string;
begin
b:=data1.ADOqr.fieldbyname('书籍总数').Value;
if b=0 then
application.MessageBox('此书全部外借中','提示',64)
else
begin
with data1.ADOdzxx do
begin
close;
sql.clear;
sql.Add('select * from 读者信息表 where ID=:c');
parameters.ParamByName('c').Value:=edit1.Text;
open;
end;
data1.ADOdzxx.Active:=true;
with data1.ADOjyxx do
begin
close;
sql.Clear;
sql.Add('insert 借阅信息表 value (:a,:b,:c,:d,:e,:f)');
parameters.ParamByName('a').Value:=edit2.Text;
parameters.ParamByName('b').Value:=data1.ADOdzxx.fieldbyname('姓名').Value;
parameters.ParamByName('c').Value:=datetostr(date());
parameters.ParamByName('d').Value:=datetostr(date());
parameters.ParamByName('e').Value:=null;
parameters.ParamByName('f').Value:=null; open;
end;
data1.ADOjyxx.Active:=true;
end;
b:=b-1;
end;补充:借阅信息表的a b c d e f 类型分别为 varchar varchar datetime datetime int datetime
最后的俩个 我是允许为空的
错误:“不正常地定义参数对象,提供了不一致或不完整的信息。”
可能问题出在红字上 向各路高手请教。。
程序如下:
procedure Tfrm_jsqr.Button1Click(Sender: TObject);
var
b:integer;
c:string;
begin
b:=data1.ADOqr.fieldbyname('书籍总数').Value;
if b=0 then
application.MessageBox('此书全部外借中','提示',64)
else
begin
with data1.ADOdzxx do
begin
close;
sql.clear;
sql.Add('select * from 读者信息表 where ID=:c');
parameters.ParamByName('c').Value:=edit1.Text;
open;
end;
data1.ADOdzxx.Active:=true;
with data1.ADOjyxx do
begin
close;
sql.Clear;
sql.Add('insert 借阅信息表 value (:a,:b,:c,:d,:e,:f)');
parameters.ParamByName('a').Value:=edit2.Text;
parameters.ParamByName('b').Value:=data1.ADOdzxx.fieldbyname('姓名').Value;
parameters.ParamByName('c').Value:=datetostr(date());
parameters.ParamByName('d').Value:=datetostr(date());
parameters.ParamByName('e').Value:=null;
parameters.ParamByName('f').Value:=null; open;
end;
data1.ADOjyxx.Active:=true;
end;
b:=b-1;
end;补充:借阅信息表的a b c d e f 类型分别为 varchar varchar datetime datetime int datetime
最后的俩个 我是允许为空的
解决方案 »
- 怎样让WEBservice运行时获的自己所在的目录?
- 熟悉IdHTTPServer和WebBrowser的大哥请进来
- 调用VC写的dll,函数中含有char *参数时,用FreeLibrary(hMod);时出错...
- myval=N'123'?
- 请教多表数据查询合并!这个内容更加详细,谢谢大家!
- 中文分词相关,即长词组切分开有独立意义的最短词组.知道的进来聊一聊,up也有分,谢谢!
- 急呀…一个简单而我从来没有碰到的问题,50分相赠!
- 以不变应万变????真令人无法忍受!!!!寻求帮助 :(
- 难于上青天
- 请问为什么不能new?
- 请教有关dbExpress连接firebird数据库的问题
- 求用delphi(pascal)脚本写一个用于程序安装时向系统写入一个服务的代码
parameters.ParamByName('a').Value:=QuotedStr(edit2.Text)
begin
Close;
Sql.Clear;
Sql.Add('Select * From 借阅信息表 Where 1=2');
Open;
Append;
FieldByName('FieldName').AsString := edit2.Text;
FieldByName('FieldName').AsDateTime := Date();
Post
end;代码没有实测,仅供风格参考
parameters.ParamByName('a').Value:=edit2.Text;
parameters.ParamByName('b').Value:=data1.ADOdzxx.fieldbyname('姓名').Value;
parameters.ParamByName('c').Value:=datetostr(date());
parameters.ParamByName('d').Value:=datetostr(date());
parameters.ParamByName('e').Value:=null;
parameters.ParamByName('f').Value:=null; 你这种写法有严重的问题。datetostr(date());这个Date()有本地化的时间,写法不对:改为:FieldByName('FieldName').AsDateTime := Date();
parameters.ParamByName('a').Value:=QuotedStr(edit2.Text);
是sql 这个控件的参数错误 好好检查下你的SQL 语句是否正确
如果正确 在去 sql.Parameters 看看参数的类型 是否设置正确 我也遇到到这种问题 后面看了下参数才知道 最主要是 SQL 语句的语法可能有错误
参数 控件无法 正确的取到参数 比如 经常有参数为 ftunkonw 要自己正确的去设置
还有居然open了..就没必要再active=true了..
对于楼上的前辈们说的.. 我以前也是varchar..和楼主一样的写法..但是没有报错过..
呵呵,是不是为了不让他查询出记录而提高速度?
学习了!
begin
Close;
Sql.Clear;
Sql.Add('Select * From 借阅信息表 Where 1=2');
Open;
Append;
FieldByName('FieldName').AsString := edit2.Text;
FieldByName('FieldName').AsDateTime := Date();
Post
end;
完全按照您的来写的 报错:未找到fieldname