当前位置:主页>仓库管理软件> 列表

究竟是哪些错了呢? 找速达软件下载

进销存软件版1楼: 我用的是ADO连ACCESS2000的数据库,在写往库里的插入语句时竟然报“Insert into语法错误”但查了半天也不知道问题出在哪?
with Data.qy_cx1 do
begin
Close;
SQL.Clear;
SQL.Add(''insert into reading(code,date,title,contant) values(:vcode,:vdate,:vtitle,:vcontant)'');
Parameters.ParamByName(''vcode'').Value := s_type;
Parameters.ParamByName(''vdate'').Value := DateTimeToStr(Now);
Parameters.ParamByName(''vtitle'').Value := Trim(ed_title.Text);
Parameters.ParamByName(''vcontant'').Value := rzmemo.Lines.Text;
ExecSQL;
Close;
end;

2楼: Parameters.ParamByName(''vcode'').Value := QuotedStr(s_type);
Parameters.ParamByName(''vdate'').Value := QuotedStr(DateTimeToStr(Now));
Parameters.ParamByName(''vtitle'').Value := QuotedStr(Trim(ed_title.Text));


Parameters.ParamByName(''vcontant'').Value := QuotedStr(rzmemo.Lines.Text); 如用友财务软件官网

3楼: 这里好像不用加引号。
可能是字段类型错误。

4楼: bbscom:
加个这个QuotedStr是用来干嘛的?确定参数类型?,用了你的方法还是不行啊,还是报“INSERT INTO语法错误”

5楼: QuotedStr是用来加单引号的。
你的可能是数据库字段类型不符。
检查reading(code,date,title,contant)的所有字段是不是字符型 ,如果是的话,就应该没错。如果不是,就会出错。
这句:Parameters.ParamByName(''vcontant'').Value := rzmemo.Lines.Text;
改成这样: Parameters.ParamByName(''vcontant'').Value := rzmemo.Text;

6楼: 这些类型都是文本类型的,如果是因为这个原因,那么文本类型的参数应该如何引入?

进销存软件版7楼: 设置断点,调试就知道是什么地方的错了。

8楼: 就是在EXECSQL运行到这里的时候就报错

9楼: 这句:Parameters.ParamByName(''vcontant'').Value := rzmemo.Lines.Text;
改成这样: Parameters.ParamByName(''vcontant'').Value := rzmemo.Text;
再检查一下字段宽度,是否合适。

10楼: 换成adocommand
不就行了
干嘛在一颗树上吊死

11楼: 没有用,就算我把所有参数改成了这样:
Parameters.ParamByName(''@vcode'').Value := ''1''; //QuotedStr(s_type);
Parameters.ParamByName(''@vdate'').Value := ''2''; //QuotedStr(DateTimeToStr(Now));
Parameters.ParamByName(''@vtitle'').Value := ''3''; //QuotedStr(Trim(ed_title.Text));
Parameters.ParamByName(''@vcontant'').Value := ''4''; //QuotedStr(rzmemo.Lines.Text);
ExecSQL;
Close;
一样报同样的错,我想应该出在SQL.ADD这句,但我看了下ACCESS里的插入语句应该是这样的,所以我好郁闷,搞个这个都没搞定。

12楼: lrl1228:
我只想知道错误的原因,难到在碰到了问题时换另一种方法解决了问题,就不用追究以前方法为什么不行的原因了吗? 如免费进销存财务软件

13楼: 去掉.value呢

进销存软件版14楼: 哦,


不对

15楼: 你先调试简单点的
一个字段的那种,也不要动态赋值
这样容易找到错误的原因

16楼: 就算我不动态赋值,也是报同样的“INSERT INTO语法错误”:
with Data.qy_cx do
begin
Close;
SQL.Clear;
SQL.Add(''insert into reading(code,date,title,contant) values(''''1'''',''''2'''',''''3'''',''''4'''')''); { Parameters.ParamByName(''code'').Value := s_type;
ExecSQL;
//Open;
Close;
end 这到底是怎么回事,你们都有在自己本机上测试过吗?

17楼: 如果数据库字段是文本字段,需要检查“是否允许为空”的设置,默认都是不允许为空的。如果有的字段为空,则插入回报错。

18楼: reading是关键字。
把表名改一下吧。

19楼: 试了和字段允许不允许为空没关系,报的错是“INSERT INTO语法错误”,注意了是语法错误,应该就是代码这写错了,但具体的哪错 了我查不出来,跟库结构没关系的

20楼: 你的表名有问题,不能用reading。它是关键字。
换一个就好了。

进销存软件版21楼: 编译运行之前还是之后的错误

22楼: 换了个表名也一样的结果,是在运行时,运行到那段代码处报错的,不是在编译时 如速达软件下载

23楼: 终于搞定了,请hfghfghfg搞定的,原来是表明里的DATE关键字冲突要这样写[date],SQL2000里是可以自动转的,没想到ACCESS里却不行,都是微软的东西,真搞不明白!!!

24楼: 多人接受答案了。