جواد ملاولی
پنج شنبه 29 اردیبهشت 1390, 04:49 صبح
سلام.
در یکی از جدولهای بانکم وقتی Insert می کنم خطا میده که:
Index or primary key cannot contain a Null value
من در برنامه از کامپوننت TMS هم استفاده کردم، متوجه شدم که قبل از اینکه متد Insert یک جدول انجام بشه، یک تابع که در یونیت AdvGrid این کامپوننت هست اجرا میشه. اون تابع اینه:
{$IFNDEF TMSDOTNET}
function MsgHookProc(Code: Integer; CurrentProcess: Cardinal; HookStruct: PCWPStruct): integer; stdcall;
begin
case HookStruct.Message of
WM_WINDOWPOSCHANGING, WM_WINDOWPOSCHANGED:
begin
if Assigned(FocusGrid) then
FocusGrid.MoveFocusHelper;
end;
end;
Result := CallNextHookEx(MsgHook, Code, CurrentProcess, Integer(HookStruct))
end;
{$ENDIF}
این تابع چند بار اجرا میشه و بعد اون خطا رو میده.
و این مشکل فقط در مورد یکی از جدولهای بانکه.
در یکی از جدولهای بانکم وقتی Insert می کنم خطا میده که:
Index or primary key cannot contain a Null value
من در برنامه از کامپوننت TMS هم استفاده کردم، متوجه شدم که قبل از اینکه متد Insert یک جدول انجام بشه، یک تابع که در یونیت AdvGrid این کامپوننت هست اجرا میشه. اون تابع اینه:
{$IFNDEF TMSDOTNET}
function MsgHookProc(Code: Integer; CurrentProcess: Cardinal; HookStruct: PCWPStruct): integer; stdcall;
begin
case HookStruct.Message of
WM_WINDOWPOSCHANGING, WM_WINDOWPOSCHANGED:
begin
if Assigned(FocusGrid) then
FocusGrid.MoveFocusHelper;
end;
end;
Result := CallNextHookEx(MsgHook, Code, CurrentProcess, Integer(HookStruct))
end;
{$ENDIF}
این تابع چند بار اجرا میشه و بعد اون خطا رو میده.
و این مشکل فقط در مورد یکی از جدولهای بانکه.