读书人

有字符的字符串无法执行SQL解决思路

发布时间: 2012-03-01 10:25:46 作者: rapoo

有字符的字符串无法执行SQL,急。
买家71669465(2011-11-14 18:39:13)(留言时采购单状态:未付款) :我需要黑湖蓝43号的,谢谢您!辛苦了!麻?

有一个EDIT1的内容是这个,我想用SQL

SQL:=‘Insert into t1 (f1) values ’+Quotedstr(edit1.text)

竟然执行不了。



[解决办法]
不是吧,长度有没有超出?
SQL:='Insert into t1 (f1) values ('+Quotedstr(edit1.text)+')';

[解决办法]
用参数吧.
INSERT INTO Table (Field1) VALUES (:string1)
parameter......
[解决办法]
你的SQL本身肯定有问题的,如果能执行只能代表只一个字段,数据库SQL能解析了。

那就是数据库的问题,不知道你什么数据库,可以用MEMO类型代替。

你可以直接在数据库中执行SQL,看看什么问题。
INSERT INTO T1 (f1) VALUES('买家71669465(2011-11-14 18:39:13)(留言时采购单状态:未付款) :我需要黑湖蓝43号的,谢谢您!辛苦了!麻?');

sqlite> create temp table t1 (f1 varchar(1000));
Query OK

sqlite> INSERT INTO T1 (f1) VALUES('买家71669465(2011-11-14 18:39:13)(留言时采购单状态:未付款) :我需要黑湖蓝43号的,谢谢您!辛苦了!麻?');
Query OK

sqlite> SELECT * FROM T1;
+------------------------------------------------------------------+
| f1 |
+------------------------------------------------------------------+
| 买家71669465(2011-11-14 18:39:13)(留言时采购单状态:未付款) :我需要黑湖蓝43号的,谢谢您!辛苦了!麻? |
+------------------------------------------------------------------+
1 row in set

sqlite>
我的SQLite是没有问题,delphi下测试也没有问题。
[解决办法]
你的问题我遇到过,如果你不用parameters来操作的话,就把paramcheck改成false;
ado遇到':'自动把后面的当作参加来处理的。

读书人网 >.NET

热点推荐