
السلام عليكم
في SQL server عملت تريڨر فيه شرط إذا تحقق 'print 'passed و أريد إضهار تلك الكلمة passed في showmessage في دالفي وشكرا لكم
يمكن فعل ذلك عن طريق حدث infomessage لعنصر الـ adoconnection:
كمايلي:
كود :
procedure TForm1.ADOConnection1InfoMessage
(Connection: TADOConnection; const Error: Error; var EventStatus: TEventStatus);
begin
Memo1.Lines.Add(Error.Description);
end;
وإذا كان هناك أكثر من رسالة يمكن تعديل الكود السابق:
كود :
procedure TForm1.ADOConnection1InfoMessage
(Connection: TADOConnection; const Error: Error; var EventStatus: TEventStatus);
var i:integer;
begin
//Memo1.Lines.Add(Error.Description);
for i := 0 to AdoConnection1.Errors.Count - 1 do
begin
Memo1.Lines.Add(ADOConnection1.Errors.Item[i].Description);
end;
end;
وفقكم الله...
أخي لكن هذا هوا الخطء 'The transaction ended in the trigger. The batch has been aborted.' الذي يخرج في دالفي وليسا الذي كتبته في SQL SERVER في PRINT
قم بتنفيذ التريغر الخاص بك داخل Sql server و تأكد من أنه يعمل بشكل جيد ويخرج الرسالة الخاصة بك, لأنه لا علاقة لدلفي بهذه الرسالة.
و أيضاً تأكد من ضبط الخاصية CursorLocation للعنصر AdoConnection إلى clUseServer.
مع مراعاة إستخدام العنصر AdoCommand لتنفيذ إستعلامات التحديث و الحذف على الجداول, لأنها هي من تقدح الحدث infomessage.