p_ooya
شنبه 20 خرداد 1391, 15:45 عصر
سلام به همه.
من یه مشکل با insert دارم که لازمه پیش از اون مقداری در مورد شرایط برنامه توضیح بدم.
برنامه مورد نظر یک برنامه است که با دلفی ۷ نوشته شده و از یه پایگاه داده SQL Server 2000 استفاده میکنه. نرم افزار چندین کاربر داره که به صورت همزمان با پایگاه داده فوقالذکر که روی سرور هست درحال کار هستند.
در برنامه من به دو صورت دادهها رو وارد بانک میکنم گاهی با استفاده از ADO Table و به صورت زیر:
ADOTableInsert.append;
ADOTableInsert['name']:=name;
ADOTableInsert['data1']:=data;
ADOTableInsert['data2']:=test;
ADOTableInsert.post;
گاهی هم با استفاده از ADO Query و با استفاده از یک insert ساده:
INSERT INTO Calls values (data1, data2, , data3)
مشکلی که چند وقته که داره پیش میاد اینه که بعضی از کاربران دارند گزارش میدن که ثبتهای از نوع دوم (کوئری) انجام نمیشن و بدون اینکه هیچ خطا یا اروری پیش میاد کارشون رو انجام میدن اما بعداً دادههاشون مفقود میشه! هیچ کاربری چنین مشکلی رو با ثبت از طریق ADO Table نداشته.
حالا من اینجا چند سوال دارم. اول از همه و مهمتر از همه اینکه چرا این اتفاق میافته؟ آیا این یک امر عادی هست؟ دوم اینکه آیا اصولاً این دو روش ثبت در ذات با هم تفاوت اساسی دارند؟ مثلاً آیا امکانش هست که ADO Table در درون از Transaction استفاده کنه؟ آیا اصولاً این بانک اطلاعاتی (اس کیو ال ۲۰۰۰) مربوط به دوران پارینه سنگی از Transaction ها ساپورت میکنه؟ در نهایت اینکه من چطور میتونم مطئن بشم که رکوردم ثبت شده؟ آیا روشی وجود داره که متوجه شد رکورد ثبت شده یا خیر؟
با تشکر.
من یه مشکل با insert دارم که لازمه پیش از اون مقداری در مورد شرایط برنامه توضیح بدم.
برنامه مورد نظر یک برنامه است که با دلفی ۷ نوشته شده و از یه پایگاه داده SQL Server 2000 استفاده میکنه. نرم افزار چندین کاربر داره که به صورت همزمان با پایگاه داده فوقالذکر که روی سرور هست درحال کار هستند.
در برنامه من به دو صورت دادهها رو وارد بانک میکنم گاهی با استفاده از ADO Table و به صورت زیر:
ADOTableInsert.append;
ADOTableInsert['name']:=name;
ADOTableInsert['data1']:=data;
ADOTableInsert['data2']:=test;
ADOTableInsert.post;
گاهی هم با استفاده از ADO Query و با استفاده از یک insert ساده:
INSERT INTO Calls values (data1, data2, , data3)
مشکلی که چند وقته که داره پیش میاد اینه که بعضی از کاربران دارند گزارش میدن که ثبتهای از نوع دوم (کوئری) انجام نمیشن و بدون اینکه هیچ خطا یا اروری پیش میاد کارشون رو انجام میدن اما بعداً دادههاشون مفقود میشه! هیچ کاربری چنین مشکلی رو با ثبت از طریق ADO Table نداشته.
حالا من اینجا چند سوال دارم. اول از همه و مهمتر از همه اینکه چرا این اتفاق میافته؟ آیا این یک امر عادی هست؟ دوم اینکه آیا اصولاً این دو روش ثبت در ذات با هم تفاوت اساسی دارند؟ مثلاً آیا امکانش هست که ADO Table در درون از Transaction استفاده کنه؟ آیا اصولاً این بانک اطلاعاتی (اس کیو ال ۲۰۰۰) مربوط به دوران پارینه سنگی از Transaction ها ساپورت میکنه؟ در نهایت اینکه من چطور میتونم مطئن بشم که رکوردم ثبت شده؟ آیا روشی وجود داره که متوجه شد رکورد ثبت شده یا خیر؟
با تشکر.