^-^-^-^-^超级扎手的问题,关于DELPHI+MYSQL的问题^-^^-^^-^(200分)

  • 主题发起人 主题发起人 不能没有你
  • 开始时间 开始时间

不能没有你

Unregistered / Unconfirmed
GUEST, unregistred user!
我目前用DELPHI+ADO+ODBC+MYSQL(MYSQL)
开发一个MIS系统,
但遇到一个极为奇怪的问题,
我插入新数据时总会遇到empty row cannot be inserted,.....
这样的奇怪错误,表已定义自增主键,而我事实上是用数据敏感控件
输入了数据,
在我POST时更奇怪,根本不出错,但数据修改不了,毫无反应,
我的表的LOCKTYPE 是optimistic
以前一直好好的
最近不知为何出现这个错误,我怀疑是设置有问题
因为我新建工程使用ADO+ODBC+MYSQL没问题
但我想尽办法修改属性设置也无济于事
请问是何道理?
 
AOD是自动产生优化的SQL语句去作插入的操作,ODBC可能有BUG,优化SQL不够好吧。
 
以前一直都能用的
就是最近不知怎么回事
好象数据库坏过之后
我修好了就不行了
真是奇怪呀
 
关于这个问题曾经和delphi中文技术支持聊过,他提到ADO+ODBC实际上经过2级转化,一般来说
或采用ADO或采用BDE(如果可能),而且通常的时候MS系列产品适用ADO,非MS产品使用BDE的
稳定性好些。
关于你的问题,我建议换种连接方式看看。
 
費話一句﹐把data目錄下的數據備份出來﹗刪除mysql﹐重裝﹐把數據拷回去試試﹗﹗
 
不清楚。向上顶顶
 
INSERT Statement Limitations
Inserted data is truncated on the right without warning if it is too long to fit into the column.

Attempting to insert a value that is out of the range of a column's data type causes a NULL to be inserted into the column.

When a dBASE, Microsoft Excel, Paradox, or Text driver is used, inserting a zero-length string into a column actually inserts a NULL instead.

When the Microsoft Excel driver is used, if an empty string is inserted into a column, the empty string is converted to a NULL; a searched SELECT statement that is executed with an empty string in the WHERE clause will not succeed on that column.

A table is not updatable by the Paradox driver under two conditions:

When a unique index is not defined on the table. This is not true for an empty table, which can be updated with a single row even if a unique index is not defined on the table. If a single row is inserted in an empty table that does not have a unique index, an application cannot create a unique index or insert additional data after the single row has been inserted.
If the Borland Database Engine is not implemented, only read and append statements are allowed on the Paradox table.
When the Text driver is used, NULL values are represented by a blank-padded string in fixed-length files, but are represented by no spaces in delimited files. For example, in the following row containing three fields, the second field is a NULL value:

"Smith:,, 123
When the Text driver is used, all column values can be padded with leading spaces. The length of any row must be less than or equal to 65,543 bytes.
 
我做系统用MYSQL那么长时间,也没见过有什么问题,就是查询如果没有记录会返回错误.

先安装MYSQL,然后到mysql.org下载 MyODBC3.5安装,程序中通过ADO控件+ODBC方式连接

先用mysqlcheck检查一下你的数据库文件是否有问题.
 
我连接能连接
也能查询到数据
但就是不能更新和插入
我检查和修复甚至优化了文件好几扁了
把文件类型改来改去(MYISAM 和INNODB)
但一直找不到原因
最近出的错
对于我以后新增的表ADOTABLE
则正常
奇怪阿
 
你的表里有日期型?
 
这个表没有日期型数据



终于解决了
是原来写的公用代码出了问题
不过出这样的错误实在是不可思议
结贴了
 
多人接受答案了。
 
后退
顶部