PDA

View Full Version : ساخت Generate SQL Script با دلفي براي اسكيوال سرور 2000 با اين تفاوت كه انتقال اطلاعات هم داشته باشه



SayeyeZohor
یک شنبه 15 مرداد 1391, 13:07 عصر
هركي مي تونه كمك كنه بسم الله

SayeyeZohor
یک شنبه 15 مرداد 1391, 14:14 عصر
1- حذف و ساخت ديتابيس مورد نظر


var
DBName, AddressDB: string;
begin
DBName := Trim(Edit2.Text);
AddressDB := 'C:\';

LBReports.BiDiMode := bdLeftToRight;
LBReports.Clear;
LBReports.Items.Add('-- حذف ديتابيس در صورت وجود --');
LBReports.Items.Add('IF EXISTS (SELECT NAME FROM Master.dbo.SysDatabases WHERE NAME = N'+QuotedStr(DBName)+')');
LBReports.Items.Add(' DROP DATABASE ['+DBName+']');
LBReports.Items.Add('GO');
LBReports.Items.Add('');

LBReports.Items.Add('-- ايجاد ديتابيس --');
LBReports.Items.Add('CREATE DATABASE ['+DBName+'] ON (NAME = N'+QuotedStr(DBName+'_Data')+', FILENAME = N'+QuotedStr(AddressDB+DBName+'_Data.MDF')+' , SIZE = 1, FILEGROWTH = 10%) LOG ON (NAME = N'+QuotedStr(DBName+'_Log')+', FILENAME = N'+QuotedStr(AddressDB+DBName+'_Log.LDF')+' , SIZE = 1, FILEGROWTH = 10%)');
LBReports.Items.Add(' COLLATE Arabic_CI_AI_KS_WS');
LBReports.Items.Add('GO');
LBReports.Items.Add('');

LBReports.Items.Add('exec sp_dboption N'+QuotedStr(DBName)+', N''autoclose'', N''false''');
LBReports.Items.Add('GO');
LBReports.Items.Add('');

LBReports.Items.Add('exec sp_dboption N'+QuotedStr(DBName)+', N''bulkcopy'', N''false''');
LBReports.Items.Add('GO');
LBReports.Items.Add('');

LBReports.Items.Add('exec sp_dboption N'+QuotedStr(DBName)+', N''trunc. log'', N''true''');
LBReports.Items.Add('GO');
LBReports.Items.Add('');

LBReports.Items.Add('exec sp_dboption N'+QuotedStr(DBName)+', N''torn page detection'', N''true''');
LBReports.Items.Add('GO');
LBReports.Items.Add('');

LBReports.Items.Add('exec sp_dboption N'+QuotedStr(DBName)+', N''read only'', N''false''');
LBReports.Items.Add('GO');
LBReports.Items.Add('');

LBReports.Items.Add('exec sp_dboption N'+QuotedStr(DBName)+', N''dbo use'', N''false''');
LBReports.Items.Add('GO');
LBReports.Items.Add('');

LBReports.Items.Add('exec sp_dboption N'+QuotedStr(DBName)+', N''single'', N''false''');
LBReports.Items.Add('GO');
LBReports.Items.Add('');

LBReports.Items.Add('exec sp_dboption N'+QuotedStr(DBName)+', N''autoshrink'', N''true''');
LBReports.Items.Add('GO');
LBReports.Items.Add('');

LBReports.Items.Add('exec sp_dboption N'+QuotedStr(DBName)+', N''ANSI null default'', N''false''');
LBReports.Items.Add('GO');
LBReports.Items.Add('');

LBReports.Items.Add('exec sp_dboption N'+QuotedStr(DBName)+', N''recursive triggers'', N''false''');
LBReports.Items.Add('GO');
LBReports.Items.Add('');

LBReports.Items.Add('exec sp_dboption N'+QuotedStr(DBName)+', N''ANSI nulls'', N''false''');
LBReports.Items.Add('GO');
LBReports.Items.Add('');

LBReports.Items.Add('exec sp_dboption N'+QuotedStr(DBName)+', N''concat null yields null'', N''false''');
LBReports.Items.Add('GO');
LBReports.Items.Add('');

LBReports.Items.Add('exec sp_dboption N'+QuotedStr(DBName)+', N''cursor close on commit'', N''false''');
LBReports.Items.Add('GO');
LBReports.Items.Add('');

LBReports.Items.Add('exec sp_dboption N'+QuotedStr(DBName)+', N''default to local cursor'', N''false''');
LBReports.Items.Add('GO');
LBReports.Items.Add('');

LBReports.Items.Add('exec sp_dboption N'+QuotedStr(DBName)+', N''quoted identifier'', N''false''');
LBReports.Items.Add('GO');
LBReports.Items.Add('');

LBReports.Items.Add('exec sp_dboption N'+QuotedStr(DBName)+', N''ANSI warnings'', N''false''');
LBReports.Items.Add('GO');
LBReports.Items.Add('');

LBReports.Items.Add('exec sp_dboption N'+QuotedStr(DBName)+', N''auto create statistics'', N''true''');
LBReports.Items.Add('GO');
LBReports.Items.Add('');

LBReports.Items.Add('exec sp_dboption N'+QuotedStr(DBName)+', N''auto update statistics'', N''true''');
LBReports.Items.Add('GO');
LBReports.Items.Add('');

LBReports.Items.Add('if( (@@microsoftversion / power(2, 24) = 8) and (@@microsoftversion & 0xffff >= 724) )');
LBReports.Items.Add(' exec sp_dboption N'+QuotedStr(DBName)+', N''db chaining'', N''false''');
LBReports.Items.Add('GO');
LBReports.Items.Add('');


LBReports.Items.SaveToFile(ExtractFilePath(Applica tion.ExeName)+'1.SQL');

SayeyeZohor
دوشنبه 16 مرداد 1391, 00:00 صبح
يك كاراييش رو انجام دادم

http://barnamenevis.org/attachment.php?attachmentid=90830

SayeyeZohor
پنج شنبه 19 مرداد 1391, 10:31 صبح
اين فايل رو دانلود كنين و تست كنين ونظر بدين براي بهبودش
تكميل بشه احتمال زياد سورسش رو براي استفاده عموم مي ذارم
تا قسمت ايجاد فانكش ها رو درست كردم
ممنون مي شم نظر بدين :خجالت:
دانلود فايل ساخت Generate SQL Script (http://s1.picofile.com/file/7463875371/ScriptGenerate.rar.html)

http://barnamenevis.org/attachment.php?attachmentid=90977

BORHAN TEC
پنج شنبه 19 مرداد 1391, 11:49 صبح
به نظر من این مورد پروژه خیلی خوبی هست و بهتره تا کارهایی صورت بگیره که بتونه اسکریپت ساخت پایگاه داده ها رو برای سایر DBMS ها تولید کنه. در dbExpress به راحتی می شه این کارها رو با استفاده از MetaData انجام داد. :چشمک:

SayeyeZohor
پنج شنبه 19 مرداد 1391, 13:22 عصر
به نظر من این مورد پروژه خیلی خوبی هست و بهتره تا کارهایی صورت بگیره که بتونه اسکریپت ساخت پایگاه داده ها رو برای سایر DBMS ها تولید کنه. در dbExpress به راحتی می شه این کارها رو با استفاده از MetaData انجام داد
ممنون
انشالله براي (tsql (SQL SERVER 2000 كه تموم شد با كمك جنابعالي سعي ام رو ميكنم
البته در صورت تمايل شما

BORHAN TEC
پنج شنبه 19 مرداد 1391, 16:13 عصر
انشاالله... :لبخندساده: