نمایش نتایج 1 تا 6 از 6

نام تاپیک: ساخت ديتابيس در هنگام ورود به برنامه اگر در SQL Server وجود نداشته باشد.

  1. #1
    کاربر دائمی آواتار سيد مجتبي هاشمي
    تاریخ عضویت
    مرداد 1386
    محل زندگی
    استان فارس - شهرستان رستم - شهر مصیری
    سن
    38
    پست
    265

    Question ساخت ديتابيس در هنگام ورود به برنامه اگر در SQL Server وجود نداشته باشد.

    با سلام. دوستان كسي ميدونه چه طوري ميشه با كدنويسي كاري كرد كه برنامه پس از اجرا تست كند و اگر ديتابيس در SQL Server وجود نداشت آن را با تمام جدولهايش ايجاد كند تا بتواند از آن استفاده كند؟

  2. #2
    کاربر دائمی آواتار merced
    تاریخ عضویت
    اردیبهشت 1383
    محل زندگی
    خراسان جنوبي
    پست
    562

    نقل قول: ساخت ديتابيس در هنگام ورود به برنامه اگر در SQL Server وجود نداشته باشد.

    اگه AdoConnection به ديتابيس مورد نظرت متصل نشد پس وجود ندارد
    اول بايد وجود SQL Server رو تست كني. اين رو با متصل شدن به بانك اطلاعاتي master چك كن.
    حالا اگه SQL Server ‌بود و ديتابيس نبود . بايد اونو اجرا كني
    به راحتي با ابزار Generate Scripts كه در SQL Server هست يه كد براي ديتابيس به يه ADOQuery بده تا برات بسازه (رويه GenerateSQLCode) و كانكت شو

    اينم يه كد. الان نوشتم، كاملا تست نكردم. شما تست كن


    try
    ADOConnection1.Close ;
    ADOConnection1.ConnectionString := 'Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=master' ;
    ADOConnection1.Open ;

    ADOQuery1.SQL.Text := 'exec sp_helpdb ' ;

    ADOQuery1.Open ;
    if not ADOQuery1.Locate('name', yourDBname , []) then
    raise Exception.Create('DB Not Exist') ;

    ADOConnection1.Close ;
    ADOConnection1.ConnectionString := 'Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog='+yourDBname ;
    ADOConnection1.Open ;

    except
    on e : Exception do begin
    if e.Message = 'Not DB Exist' then
    GenerateSQLCode
    else
    ShowMessage('SQL Server Not Exist')

    end ;
    end ;



  3. #3
    کاربر دائمی آواتار سيد مجتبي هاشمي
    تاریخ عضویت
    مرداد 1386
    محل زندگی
    استان فارس - شهرستان رستم - شهر مصیری
    سن
    38
    پست
    265

    Question نقل قول: ساخت ديتابيس در هنگام ورود به برنامه اگر در SQL Server وجود نداشته باشد.

    نقل قول نوشته شده توسط merced مشاهده تاپیک
    اگه AdoConnection به ديتابيس مورد نظرت متصل نشد پس وجود ندارد
    اول بايد وجود SQL Server رو تست كني. اين رو با متصل شدن به بانك اطلاعاتي master چك كن.
    [/code]
    ميشه بيشتر توضيح بدين و يه كد هم به عنوان نمونه قرار بدي؟ ممنون.

  4. #4
    کاربر دائمی آواتار merced
    تاریخ عضویت
    اردیبهشت 1383
    محل زندگی
    خراسان جنوبي
    پست
    562

    نقل قول: ساخت ديتابيس در هنگام ورود به برنامه اگر در SQL Server وجود نداشته باشد.

    نقل قول نوشته شده توسط mojtaba_ha2007 مشاهده تاپیک
    ميشه بيشتر توضيح بدين و يه كد هم به عنوان نمونه قرار بدي؟ ممنون.
    همون كد بالا

  5. #5
    منتظر تایید آدرس ایمیل
    تاریخ عضویت
    تیر 1386
    محل زندگی
    شهيد محلاتي
    پست
    79

    نقل قول: ساخت ديتابيس در هنگام ورود به برنامه اگر در SQL Server وجود نداشته باشد.

    'if Exists (select name from sys.databases where name = ' +
    QuotedStr('DBNAME') + ')'

    اگر شرط بالا برقرار بود ميتوني اطمينان حاصل كن كه ديتابيس مورد نظر در SQl موجود هست و متصل مي باشد و اگر شرط برقرار نبود اون رو بسازي من كد ساختن ديتابيس رو هم برايت ميفرستم.
    به جاي DBNAME نام ديتابيس مورد نظر رو بنويس.

  6. #6
    منتظر تایید آدرس ایمیل
    تاریخ عضویت
    تیر 1386
    محل زندگی
    شهيد محلاتي
    پست
    79

    نقل قول: ساخت ديتابيس در هنگام ورود به برنامه اگر در SQL Server وجود نداشته باشد.

    سلام؛
    شما بهتر است به جاي ساختن بانك برنامه در SQL يكبار بانك را در SQL ساخته و فايلهاي آن را در كنار برنامه خود قرار داده و در هنگام اجراي برنامه متصل بودن آن را در SQl كنترل كني و در صورتي كه بانك شما در SQl موجود نبود آن را Attach كنيد.
    براي Attach ديتابيس اين كد به شما كمك مي كنه:
    With ADOCommand Do
    Begin
    CommandText :=
    'Use Master ' + #13 +
    'If Not Exists (Select Name from Sys.DataBases Where [Name] = ' +
    QuotedStr(DB_Name) + ')' + #13 +
    'Exec Sp_attach_db @dbname = ' + DB_Name + ',' + #13 +
    '@filename1 = ' + QuotedStr(Filename1)+ ',' + #13 +
    '@filename2 = ' + QuotedStr(Filename2);
    CommandType := cmdText;
    ConnectionString:= '...'
    Execute;
    end;{With}

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •