不用ODBC DSN连行不行? ------行的!但中文显示为'???????' ------并且在查询如下语句时,当dhk里有相同号码(hm)时出错: select * from jbk where bh in (select jbkbh from dhk where hm=:hm) ------哎,真是头大如斗啊!
to :78 rrsj是datetime型,非关键字段,无索引. 我用的是D5+Sp1+ADOSp2+sqlserver6.5
我的后台是SQL SERVER2000。 难道问题出在2000与6.5的兼容性上? 换后台看看.
我create table 以后执行没有错误 sql server 2000 +d5+win200+adosp2 是不是你的数据输入有问题所有的edit里指数入一个字符create table jbk ( dhhm varchar(10), xm varchar(10),jc varchar(10), xb varchar(10),gj varchar(10),zy varchar(10) ,xz varchar(10),lb varchar(10), rrsj datetime,rrry varchar(10),bz text)--rrsj是datetime型,bz是text 型,其他char型 with adoQuery1 do begin close; sql.Clear ; sql.Add('insert into jbk (dhhm,xm,jc,xb,gj,zy,xz,lb,rrsj,rrry,bz) '); sql.Add('values(:dhhm,:xm,:jc,:xb,:gj,:zy,:xz,:lb,:rrsj,:rrry,:bz)'); Parameters.parambyname('dhhm').value:=edit9.text; Parameters.ParamByName('xm').value:=edit1.text; Parameters.ParamByName('jc').value:=edit2.text; Parameters.ParamByName('xb').value:=edit3.text; Parameters.ParamByName('gj').value:=edit4.text; Parameters.ParamByName('zy').value:=edit5.text; Parameters.ParamByName('xz').value:=edit6.text; Parameters.ParamByName('lb').value:=edit7.text; Parameters.ParamByName('rrsj').value:=datetostr(date()); Parameters.ParamByName('rrry').value:=edit8.text; Parameters.ParamByName('bz').value:=memo1.Lines.Text; execsql; //出错:‘optional feature not implemented ’ end;
TO :lwk_hlj(阿凯) 你是怎么解决的啊 ????????????????
我也没解决啊 我用adodataset换掉adoquery 就可以了,我也不知到错在哪里,
我也用的是odbc dsn+sql 7.0 win2000 server delphi6 你用adodataset with adodataset do begin insert; ....// fieldbyname('rrsj').asdatatime:=date; ... post; end; 这样就行了
JBK表是如何定义的啊?
with AdoQuery1 do
begin
Close;
SQL.Clear ;
//dateF : DateTime字段
//textF : Text字段
SQL.Add('insert into testT (dateF,textF) ');
SQL.Add('values(:dateF,:textF)');
Parameters.ParamByName('dateF').Value :=
FormatDateTime('yyyy-mm-dd',date());
Parameters.ParamByName('textF').Value := Memo1.Lines.Text;
ExecSql; //没有出错,不信你试试。
end;
FormatDateTime('mm/dd/yyyy',date());
来试试。
这句出错,如果表定义是日期的话不必转换成字符。
直接这样:
Parameters.ParamByName('rrsj').value:=date();
错!
Parameters.ParamByName('dateF').Value :=
FormatDateTime('yyyy-mm-dd',date());
还错!!
FormatDateTime('mm/dd/yyyy',date());
再错!!!应该怎样阿??
直接用ADOCONNECTION控件,看有没有这个问题.
------行的!但中文显示为'???????'
------并且在查询如下语句时,当dhk里有相同号码(hm)时出错:
select * from jbk where bh in (select jbkbh from dhk where hm=:hm)
------哎,真是头大如斗啊!
查询不会出错吧!
你这句没有什么问题,是不是表有什么特殊的设置?
用adoquery只要有datetime字段,一定会出错,希望大家快点给个主意见啊
改為memo1.text就OK了
Parameters.ParamByName('rrsj').value:=datetostr(date());用adoquery只要有datetime字段,一定会出错吗??
我用的是D5+Sp1+ADOSp2。
我在使用ADOQUERY插入数据时经常插入日期数据,方法同错误的一模一样,从不报错。
你是在编译阶段出错,还是在运行时报错?
编译出错你把这句删了重新写。
运行时报错你检查一下表中的相应字段定义,比如你的rrsj到底是什么类型?或者你是不是将rrsj定义成了关键字段,唯一索引而数据库中有当天日期的情况?
不过你先改成这样试试:
Parameters.ParamByName('rrsj').value:=Now;
Parameters.ParamByName('rrsj').DataType:=ftDateTime;
rrsj是datetime型,非关键字段,无索引.
我用的是D5+Sp1+ADOSp2+sqlserver6.5
难道问题出在2000与6.5的兼容性上?
换后台看看.
sql server 2000 +d5+win200+adosp2
是不是你的数据输入有问题所有的edit里指数入一个字符create table jbk (
dhhm varchar(10),
xm varchar(10),jc varchar(10),
xb varchar(10),gj varchar(10),zy varchar(10)
,xz varchar(10),lb varchar(10),
rrsj datetime,rrry varchar(10),bz text)--rrsj是datetime型,bz是text 型,其他char型
with adoQuery1 do
begin
close;
sql.Clear ;
sql.Add('insert into jbk (dhhm,xm,jc,xb,gj,zy,xz,lb,rrsj,rrry,bz) ');
sql.Add('values(:dhhm,:xm,:jc,:xb,:gj,:zy,:xz,:lb,:rrsj,:rrry,:bz)');
Parameters.parambyname('dhhm').value:=edit9.text;
Parameters.ParamByName('xm').value:=edit1.text;
Parameters.ParamByName('jc').value:=edit2.text;
Parameters.ParamByName('xb').value:=edit3.text;
Parameters.ParamByName('gj').value:=edit4.text;
Parameters.ParamByName('zy').value:=edit5.text;
Parameters.ParamByName('xz').value:=edit6.text;
Parameters.ParamByName('lb').value:=edit7.text;
Parameters.ParamByName('rrsj').value:=datetostr(date());
Parameters.ParamByName('rrry').value:=edit8.text;
Parameters.ParamByName('bz').value:=memo1.Lines.Text;
execsql; //出错:‘optional feature not implemented ’
end;
我用adodataset换掉adoquery
就可以了,我也不知到错在哪里,
win2000 server
delphi6
你用adodataset
with adodataset do
begin
insert;
....//
fieldbyname('rrsj').asdatatime:=date;
...
post;
end;
这样就行了
真的
它也是用sql语句的
我现在一直在用他