写了个小程序,往SYBASE的TEXT字段插入数据。
开发环境2003/D7/CTLIB for7 另一个机器都是一样的。
目标数据库是同一个。
为什么我开发环境的机器运行就成功可以写入长字符串,
换个机器长字符串就失败了(字符串短可以成功)??????
代码: with sqlrecord do
begin
close;
sql.Clear;
sql.Add('insert into OperRecords (IP,SQL) values (:IP,:SQL)');
ParamByName('IP').AsString:= NetGetLocalIP ;
ParamByName('SQL').AsString:=trim(memo1.Text);
execsql;
end;
出错报SQL字段不能为空(SQL字段建表时设计NOT NULL)。
我也试着把源码全部复制到另外一台机器执行,还是不能成功,但我的就是可以。
第一次撞见这么怪的事情。 求解释~~~
开发环境2003/D7/CTLIB for7 另一个机器都是一样的。
目标数据库是同一个。
为什么我开发环境的机器运行就成功可以写入长字符串,
换个机器长字符串就失败了(字符串短可以成功)??????
代码: with sqlrecord do
begin
close;
sql.Clear;
sql.Add('insert into OperRecords (IP,SQL) values (:IP,:SQL)');
ParamByName('IP').AsString:= NetGetLocalIP ;
ParamByName('SQL').AsString:=trim(memo1.Text);
execsql;
end;
出错报SQL字段不能为空(SQL字段建表时设计NOT NULL)。
我也试着把源码全部复制到另外一台机器执行,还是不能成功,但我的就是可以。
第一次撞见这么怪的事情。 求解释~~~
别人机器SQL字符串长的报错,短的可以写入。
而我自己的机器不管SQL字符串长短都可以写入。
数据库连接正常,我也怀疑SQL插入的时候是不是数据不匹配的问题,
但是我开发的机器就能插入,太邪了。
SQL里面有单引号,后来试过替换为双引号就可以执行成功了。
但为什么我的机器,单引号不报错呢?
不过确实我的机器装的是office2007,他们装的是office2003。
明天去试试