尽是些莫名其妙的错误!

时间:2022-01-19 19:43:54
有一插入语句:
 OADOQuery.Close;
 OADOQuery.SQL.Clear;
 OADOQuery.SQL.Add('insert Netoutput(Ndate,Noutputtype,Noutputmoney,Per,Note)   values(:Ndate,:Noutputtype,:Noutputmoney,:Per,:Note)');
 OADOQuery.Parameters.ParamByName('Ndate').value:=ODateTimePicker.DateTime;
 OADOQuery.Parameters.ParamByName('Noutputtype').value:=OtypeEdit.Text;
 OADOQuery.Parameters.ParamByName('Noutputmoney').value:=OmoneyEdit.Text;
 OADOQuery.Parameters.ParamByName('Per').value:=OmanageEdit.Text;
 OADOQuery.Parameters.ParamByName('Note').value:=OnoteMemo.Text;
 OADOQuery.ExecSQL;

编译没有问题,运行的时候,有错:
  Access violation at address 1F453E7 in module 'msado15.dll'.Write of address 014D9030

唉,晕死了。
请各位救命。

F7单步调试一下

 OADOQuery.ExecSQL;

显示这一句有问题。

18 个解决方案

#1


升级一下ado
好像是(madc)

#2


是不是有的类型不匹配呀!

#3


是不是有的类型不匹配呀!
我看有点像,但不知道那儿的类型不匹配。
各位兄弟帮忙看一下。
在Access上运行挺好,在SQL上就不行了。

#4


如果是D5就升级ADO补丁,如果不是再试试升级MDAC:
http://www.microsoft.com/downloads/details.aspx?displaylang=zh-cn&FamilyID=6c050fe3-c795-4b7d-b037-185d0506396c

#5


我用的是delphi7

#6


应该是你的控件的问题

#7


insert 后面少一个into

#8


up

#9


这是我改了以后的SQL语句:
OADOQuery.SQL.Add('insert into Netoutput (Ndate,Noutputtype,Noutputmoney,Per,Note) values(:Ndate,:Noutputtype,:Noutputmoney,:Per,:Note)');

可还是报错:
Access violation at address 1F4477A8 in module 'msado15.dll'.Read of address 000010D

受不了。
各位帮一下。

#10


各位看了,有什么问题?
怎么还是老样子?

#11


我看你是数据连接的问题啊,
你重新连接一下试试啊

#12


据我初步估计是日期参数传送有问题。因为有这么一句,各位看看:

OselectADOQuery.SQL.Add('select * from Netoutput where Ndate=''2004-7-1''');
没有问题;

OselectADOQuery.SQL.Add('select * from Netoutput where Ndate=:Nselectdate');
 OselectADOQuery.Parameters.ParamByName('Nselectdate').value:=OselectDateTimePicker.DateTime;

运行运行错:Optional feature not implemented
怎么办? 用的SQL Server

formatdatetime('yyyy-mm-dd',OstartDateTimePicker.DateTime)

DateToStr(OselectDateTimePicker.DateTime);

也试了,还是不行。
晕倒。
各位兄弟,救命!

#13


试试把SQL.add()改为SQL.text:=

#14


哦,再加上一句OADOQuery.edit

#15


如果有字符型字段要加‘#39’

#16


如果有字符型字段要加‘#39’

这是什么意思?

#17


insert 
应为: Insert InTo

#18


如果有字符型字段要加‘#39’

这是什么意思?

#1


升级一下ado
好像是(madc)

#2


是不是有的类型不匹配呀!

#3


是不是有的类型不匹配呀!
我看有点像,但不知道那儿的类型不匹配。
各位兄弟帮忙看一下。
在Access上运行挺好,在SQL上就不行了。

#4


如果是D5就升级ADO补丁,如果不是再试试升级MDAC:
http://www.microsoft.com/downloads/details.aspx?displaylang=zh-cn&FamilyID=6c050fe3-c795-4b7d-b037-185d0506396c

#5


我用的是delphi7

#6


应该是你的控件的问题

#7


insert 后面少一个into

#8


up

#9


这是我改了以后的SQL语句:
OADOQuery.SQL.Add('insert into Netoutput (Ndate,Noutputtype,Noutputmoney,Per,Note) values(:Ndate,:Noutputtype,:Noutputmoney,:Per,:Note)');

可还是报错:
Access violation at address 1F4477A8 in module 'msado15.dll'.Read of address 000010D

受不了。
各位帮一下。

#10


各位看了,有什么问题?
怎么还是老样子?

#11


我看你是数据连接的问题啊,
你重新连接一下试试啊

#12


据我初步估计是日期参数传送有问题。因为有这么一句,各位看看:

OselectADOQuery.SQL.Add('select * from Netoutput where Ndate=''2004-7-1''');
没有问题;

OselectADOQuery.SQL.Add('select * from Netoutput where Ndate=:Nselectdate');
 OselectADOQuery.Parameters.ParamByName('Nselectdate').value:=OselectDateTimePicker.DateTime;

运行运行错:Optional feature not implemented
怎么办? 用的SQL Server

formatdatetime('yyyy-mm-dd',OstartDateTimePicker.DateTime)

DateToStr(OselectDateTimePicker.DateTime);

也试了,还是不行。
晕倒。
各位兄弟,救命!

#13


试试把SQL.add()改为SQL.text:=

#14


哦,再加上一句OADOQuery.edit

#15


如果有字符型字段要加‘#39’

#16


如果有字符型字段要加‘#39’

这是什么意思?

#17


insert 
应为: Insert InTo

#18


如果有字符型字段要加‘#39’

这是什么意思?