PDA

View Full Version : حرفه ای: اجرای اسکریپت (چند دستوره) از داخل فایل متنی در دلفی



skd_prog
شنبه 11 مرداد 1393, 11:51 صبح
با سلام خدمت دوستان
من یک فایل متنی اسکریپت تغییرات بانک اطلاعاتی اس کیو ال دارم
شامل چند دستور متفاوت که به GO از هم جدا شده است
می خواهم مستقیما از داخل دلفی آدرس فایل را گرفته و اسکریپت را بر روی بانک اطلاعاتی اجرا کنم
لطفا راهنمائی نمائید
ضمنا می خواهم با تغییر فایل اسکریپت نیازی به تغییر در برنامه نباشد
با تشکر از کلیه دوستان

یوسف زالی
شنبه 11 مرداد 1393, 12:19 عصر
سلام.
حرفه ای؟؟؟

فایل رو در خصیصه SQL از ADOQuery بریزید و اون رو ران کنید. همین.
برای بخش های متفاوت (بچ) هم با یک عملیات ساده رشته ای می تونید هر بچ رو جداگانه ران کنید.

zidane
سه شنبه 14 مرداد 1393, 09:27 صبح
اتفاقا به این راحتی هم نیست
مثلا برای اجرای اسکریپت هایی مثل:
BEGIN TRANSACTION
ALTER TABLE Table1 ADD [ID] [int] IDENTITY (1, 1) NOT NULL
GO
IF @@ERROR <> 0 IF @@TRANCOUNT = 1 ROLLBACK TRANSACTION
GO
IF @@TRANCOUNT = 1 ALTER TABLE Table2 ADD [ID] [int] IDENTITY (1, 1) NOT NULL
GO
IF @@ERROR <> 0 IF @@TRANCOUNT = 1 ROLLBACK TRANSACTION
GO
IF @@TRANCOUNT = 1
BEGIN
PRINT 'Success'
COMMIT TRANSACTION
END ELSE PRINT 'Failed'
نمیشه هر دفعه اس کیو ال رو تغییر داد و کد نویسی کرد
به نظر من راحت ترین و کم دردسر ترین روش اجرا از طریق SQLCMD یا OSQL هست

یوسف زالی
سه شنبه 14 مرداد 1393, 10:32 صبح
دقیقا به همین راحتیه.
اگر سیستم بچ بندی شما درست رعایت شده باشه، با تفکیکش به راحتی می شه انجامش داد.
در بدترین حالت تبدیلش می کنیم به اس پی، اون رو ران می کنیم.
یا این که مدیریت تراکنش ها رو دست خودمون می گیریم.
استفاده از OSQL در همه سیستم ها امکان پذیر نیست. ساده ترین راهش خود اس کیو اله، ولی قراره با دلفی انجام بشه.
به هر جهت کار خیلی سخت و پیچیده نیست.