首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ Builder >

TQuery 在Post时候报“non-blob required in table to perform this operation”解决思路

2012-02-10 
TQuery 在Post时候报“non-blob required in table to perform this operation”TQuery连接SQLServer2000使

TQuery 在Post时候报“non-blob required in table to perform this operation”
TQuery   连接SQL   Server2000使用非sa用户登录,在Post时候报“non-blob   required   in   table   to   perform   this   operation”;使用SA用户登录时候就没有任何问题。
不知道是什么原因,请教各位高手。
谢谢!
急等。

[解决办法]
那是权限问题喽?
[解决办法]
是啊,把该用户改成db_owner试试,呵呵.
[解决办法]
Non-Blob column in table required to perform operation with MSSQL - by Borland Developer Support Staff


Abstract:Non-Blob column in table required to perform operation with MSSQL
Question and Answer Database

FAQ4274B.txt - Non-Blob column in table required to perform operation

Category :Database (MSSQL)
Platform :32 Bit
Product :BC++5.x, C++Builder1.0, C++Builder3.x, C++Builder4.x, Delphi2.x, Delphi3.x, Delphi4.x, Delphi 5.x

Question:
How come I 'm getting the error
"Non Blob column in table required to perform operation " when posting to my MSSQL database?

Answer:
There are two conditions where this error occurs:


1。You have an identity field and a field that is NOT NULL (required) and you post a record.
With BDE versions prior 5.10, all you can do is ignore the error and continue. The problem is resolved simply by getting BDE 5.10.


2。You have an identity field which is the primary key and a key field, you have a text field, and you post a record.
With BDE versions prior 5.10, all you can do is ignore the error and continue. If you have BDE 5.10 and Delphi, you can turn on the AutoRefresh property of your DataSet to resolve the problem.

If you have BDE 5.10 and development system other than Delphi 5, you can call DbiSetProp and set curAUTOREFETCH (which is equal to 0x00050017) to true.


C++ Builder Example:
#include "bde.hpp "
#define curAUTOREFETCH 0x00050017;
Table1-> Open();
DbiSetProp(Table1-> Handle, curAUTOREFETCH, TRUE);


Delphi version other than 5 example:
[b]uses bde;
const
curAUTOREFETCH = $00050017;
...
Table1.Open;
DbiSetProp(hDbiObj(Table1.Handle), curAUTOREFETCH, Longint(TRUE))

热点排行