SQL: Statement too long. 为什么?怎么办?(200分)

  • 主题发起人 主题发起人 ColaBoy
  • 开始时间 开始时间
C

ColaBoy

Unregistered / Unconfirmed
GUEST, unregistred user!
一个VFP数据库,85个字段,用ODBC连接,程序简单到只用了一个DBGrid,
但是只要有任何修改,就出现以下错误提示:
Key violation.
[Microsoft][ODBC Visual FoxPro Driver]SQL: Statement too long.
???? Why? How? 希望诸位大侠出手解救!
Thanx!
 
Key violation:主键冲突。
Statement too long.SQL 语句太长。
因为85个字段太多,看来你只能重建此库了。
Hope someOne Can help you not
rebuild the VFP database.
 
不要用 select *, 可以选择字段。
 
应该用UpdateSQL来修改数据库,
否则,Delphi会用以下默认的SQL语句来修改:

Update youDB
Set
field1 = :field1,
field2 = :field2,
...
field85 = :field85
Where
field1 = :OLD_field1 and
field2 = :OLD_field2 and
...
field85 = :OLD_field85

where语句实际上可以简化为:
Where keyfield = :OLD_keyfield

 
用Query加SQL语句来修改,不要用Table。
 
但主要问题还是没有主键,一定要建一个的。
SQL TOO LONG,看看设置成WhereKeyOnly
 
多人接受答案了。
 
后退
顶部