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

نام تاپیک: گرفتن بکاپ از دیتا بیس (فقط داده ها نه ساختار)

  1. #1
    کاربر دائمی
    تاریخ عضویت
    شهریور 1387
    سن
    44
    پست
    634

    گرفتن بکاپ از دیتا بیس (فقط داده ها نه ساختار)

    سلام دوستان
    من از کدی که برای بکاپ کیری از دیتابیسم استفاده می کنم موقعی که ریستور می شه ساختار دیتابیس رو هم در صورت عوض شدن ساختار (کم و زیاد شدن فیلد ها یا نوع و هر تغییر ساختاری)تغییر می ده .
    از انجای کاربران از دیتابیس قدیمی تر استفاده می کنند و با آپدیت برنامه ممکن هست تو ساختار دیتابیس هم تغییراتی ایجاد بشه. می خوام به نحوی بکاپ تهیه شود که بعدا در صورت ریستور کردن دیتابیس رو به حالت قبلی برنگرداند.
    چطور می تونم این کار رو بکنم؟
    این هم کدی که برای بکاپ گیری استفاده می کنم.

    البته من این سوال رو تو تالار vb.net هم مطرح کردم و از آنجای که به نتیجه نرسیدم گفتم از برنامه نویس های C#‎‎ کمک بگیرم(مدیرای تالار لطفا این تاپیک رو حذف نکنید)


    'پشتیبان گیری از بانک
    Dim shams AsString = shamsi()
    shams = shams.Replace("/", "-")
    Dim str_name_backup AsString = shams & "__Tala.bak"
    Dim DevicePath AsString
    With SaveFileDialog1
    .FileName = str_name_backup
    .DefaultExt = "bak"
    .Filter = "DateBase Backup File(*.bak)|*.bak"
    .OverwritePrompt = True
    EndWith
    If SaveFileDialog1.ShowDialog = Windows.Forms.DialogResult.OK Then
    DevicePath = SaveFileDialog1.FileName
    IfMy.Computer.FileSystem.FileExists(DevicePath) Then Kill(DevicePath)
    con.Close()
    con.Open()
    Dim Srvcon AsNew ServerConnection(con)
    Dim Srv AsNew Server(Srvcon)
    ' Create backup device item for the backup
    Dim bdi AsNew BackupDeviceItem(DevicePath, DeviceType.File)
    ' Create the backup informaton
    Dim Backup AsNew Backup
    Backup.Devices.Add(bdi)
    With Backup
    'Type Of Backup
    .Action = BackupActionType.Database
    .BackupSetDescription = "Backup DataBase"
    .BackupSetName = "DB"
    .Database = con.Database.ToString()
    .LogTruncation = BackupTruncateLogType.Truncate
    'Backup.ExpirationDate = New DateTime(2007, 5, 1)
    ' Run the backup
    .SqlBackup(Srv)
    EndWith
    MessageBoxFa.Show("عملیات تهیه فایل پشتیبان به موفقیت انجام شد ", _
    name_me, MessageBoxButtons.OK)
    Else
    MessageBoxFa.Show(" انجام نشد ", name_me, MessageBoxButtons.OK)
    EndIf

    البته کد با vb هست . شما با هر زبانی توضیح بدی ممنون می شم

  2. #2
    کاربر دائمی آواتار saied_genius
    تاریخ عضویت
    آبان 1386
    محل زندگی
    IRAN فعلاً ...
    پست
    595

    نقل قول: گرفتن بکاپ از دیتا بیس (فقط داده ها نه ساختار)

    خوب به نظر من اگر شما هدفتان اين است که ساختار پس از restore نسبت به ديتابيس اوليه هيچ تغييري نکند و اطلاعات آن هم برايتان مهم نيست، از ساختار ديتابيس يک اسکريپت تهيه کنيد و آنرا restore کنيد.

    البته اگر درست متوجه سوالتان شده باشم!

    موفق باشيد.

  3. #3
    کاربر دائمی آواتار saied_genius
    تاریخ عضویت
    آبان 1386
    محل زندگی
    IRAN فعلاً ...
    پست
    595

    نقل قول: گرفتن بکاپ از دیتا بیس (فقط داده ها نه ساختار)

    اووووووه
    ببخشيد ، مثل اينکه من سوال را کاملاً برعکس متوجه شدم.

    يه برنامه هست به نام sqlpubwiz ، اين برنامه مال خود مايکروسافت است و امکان backup گيري هم از اطلاعات (به تنهايي) هم از ساختار (به تنهايي) و هم از اطلاعات و ساختار (با هم ديگه) را دارد.

    امکان استفاده با command prompt را هم دارد. يعني مي توانيد از داخل برنامه به صورت process با پرامتر صداش کنيد.


    sqlpubwiz سرچ کني راحت پيدا مي شه.

    خود مايکروسافت هم براي دانلود گذاشته.

    لينک دانلودش را يادم نيست.

    من الان 3 ساله دارم باهاش کار مي کنم ، هيچ مشکلي هم باهاش ندارم.

    راهنماي استفاده :

    sqlpubwiz.exe/?


    سوالي بود در خدمتم.

    موفق باشيد.

  4. #4
    کاربر دائمی
    تاریخ عضویت
    شهریور 1387
    سن
    44
    پست
    634

    نقل قول: گرفتن بکاپ از دیتا بیس (فقط داده ها نه ساختار)

    سلام دوست عزیز
    ممنون از توجهی که دارید. من نتونستم لینک دانلودش رو پیدا کنم. اگه می شه لینک بدید. و بفرمایید هجمش چقدر هست (چون من dialupم)

  5. #5
    کاربر دائمی آواتار saied_genius
    تاریخ عضویت
    آبان 1386
    محل زندگی
    IRAN فعلاً ...
    پست
    595

    نقل قول: گرفتن بکاپ از دیتا بیس (فقط داده ها نه ساختار)

    ok

    اين هم برنامه ، خودم براتون گذاشتم ، بيخودي نگرديد دنبالش.

    به قسمت هاي 400kb تقسيم کردم.

    حجم کل 1.42MB است.

    موفق باشيد.
    فایل های ضمیمه فایل های ضمیمه

  6. #6
    کاربر دائمی آواتار saied_genius
    تاریخ عضویت
    آبان 1386
    محل زندگی
    IRAN فعلاً ...
    پست
    595

    نقل قول: گرفتن بکاپ از دیتا بیس (فقط داده ها نه ساختار)

    اين هم لينک دانلود sqlpubwiz از مايکروسافت:(براي دوستاني که مي خواهند مستقيم دانلود کنند)

    http://www.microsoft.com/downloads/d...displaylang=en

    حجم فايل: 2.1MB
    نوع فايل: msi.
    زمان دانلود با اينترنت 6min : dialup

    موفق باشيد.
    آخرین ویرایش به وسیله saied_genius : یک شنبه 19 اردیبهشت 1389 در 17:34 عصر

  7. #7
    کاربر دائمی
    تاریخ عضویت
    شهریور 1387
    سن
    44
    پست
    634

    نقل قول: گرفتن بکاپ از دیتا بیس (فقط داده ها نه ساختار)

    من الان در حال دالود کردن فایلها هستم . امیدوارم در استفاده از این برنامه هم راهنمایی نمایید. بازم ممنون

  8. #8
    کاربر دائمی آواتار saied_genius
    تاریخ عضویت
    آبان 1386
    محل زندگی
    IRAN فعلاً ...
    پست
    595

    نقل قول: گرفتن بکاپ از دیتا بیس (فقط داده ها نه ساختار)

    ?/sqlpubwiz
    براي استفاده با command prompt

    در حالت ويژوال هم خيلي گويا است.

    موفق باشيد.

  9. #9
    کاربر دائمی
    تاریخ عضویت
    شهریور 1387
    سن
    44
    پست
    634

    نقل قول: گرفتن بکاپ از دیتا بیس (فقط داده ها نه ساختار)

    سلام دوست عزیز
    من دانلود کردم بنظر برنامه بسیار جالبی می یاد .

    حالا که تا اینجا به من کمک کردید یک توضیح مفصل تری بفرمایید که چطور می تونم با استفاده از این برنامه
    1 - از دادههای دیتابیس بکاپ تهیه کنم بدون ساختار
    2- چطور می تونم دیتابیس جدید رو با استفاده از این برنامه جایگزین دیتابیس قبلی کنم. بدون اینکه به داده های آن آسیبی وارد شود.

    توجه نمایید منظورم دو حالت مختلف هست.
    در ضمن آیا می شه از امکانات این برنامه تو کد نویسی خدمون استفاده کنیم و کارها روتین شود یعنی نیاز به حضور ما در محل نباشد. کار بر نرم افزار من بتونه خودش این کار ها رو انجام بده یعنی با ارسال برنامه جدید برای وی خودش بتونه برنامه جدید رو نصب کنه و ریستور لازم رو انجام بده بدون اینکه به اطلاعات دیتابیسش خدشه ای وارد بشه؟
    آخرین ویرایش به وسیله mina.net : یک شنبه 10 آبان 1388 در 18:05 عصر

  10. #10
    کاربر دائمی آواتار saied_genius
    تاریخ عضویت
    آبان 1386
    محل زندگی
    IRAN فعلاً ...
    پست
    595

    نقل قول: گرفتن بکاپ از دیتا بیس (فقط داده ها نه ساختار)

    ببينيد ....

    فکر کنم شما داريد کلاً راه را اشتباه مي رويد.

    اگر کامل توضيح دهيد چي کار مي خواهيد انجام دهيد بهتر است.

    اما طبق برداشت من ، کاربر شما يک سري اطلاعات داخل ديتابيس دارد که ممکن است روز به روز بيشتر شود.

    حالا شما هم جداگانه مي خواهيد يکسري اطلاعات جديد به آن اضافه کنيد.

    اين کار با restore کردن ديتابيس کار درستي نيست.

    بهتره شما از اطلاعات ديتابيستان يک script از نوع insert بسازيد و اطلاعات جديد رو insert نماييد.

    اگر اشتباه مي کنم لطفاً من رو توي اين مسئله روشن کنيد تا بهتر بتوانم شما را راهنمايي کنم.

    موفق باشيد.

  11. #11
    کاربر دائمی
    تاریخ عضویت
    شهریور 1387
    سن
    44
    پست
    634

    نقل قول: گرفتن بکاپ از دیتا بیس (فقط داده ها نه ساختار)

    نقل قول نوشته شده توسط saied_genius مشاهده تاپیک
    اگر اشتباه مي کنم لطفاً من رو توي اين مسئله روشن کنيد تا بهتر بتوانم شما را راهنمايي کنم.
    .
    دوست عزیز شما برعکس متوجه شدید.
    فرض کنید من یک برنامه حسابداری به یکی فروختم بعد از مدتی اطلاعاتی در اون ثبت می شه که گاها ارزش اون اطلاعات 10 ها برابر بنامه من خواهد بود البته از نظر کاربر

    خوب این کاربر طبق روال معمول برای خودش هر چند وقت یک بار بکاپتهیه می کنه و نگهداری می کنه.

    بعد از مدتی برنامه توسط من (شرکت تولید کننده نرم افزار مورد نظر) ویرایش می شه و امکانات جدیدی به اون اضافه می شه. طی این ویرایش ممکنه ساختار دیتابس هم تغییر کند.

    خوب حال اگه ما بریم و برنامه جدید رو برای کاربرمون نصب کنیم. باید اطلاعات قدیمی رو برای وی بازیابی کنیم. در اینصورت چه اتفاقی می فته : با ریستور کردن اطلاعات قدیمی کاربر دوباره دیتابیس قدیمی(هم داده ها و هم ساختار) جایگزین دیتابیس جدیدی خواهد شد که این خواست ما نیست ما می خواهیم فقط داده ها ریستور بشن نه ساختار که برای تحقق این خواست باید یکی از دو حالت زیر رو عملی کرد
    1 - از دادههای دیتابیس بکاپ تهیه کنم بدون ساختار
    2- چطور می تونم دیتابیس جدید رو با استفاده از این برنامه جایگزین دیتابیس قبلی کنم. بدون اینکه به داده های آن آسیبی وارد شود.
    که البته من نمی دونم چطور باید یکی از این دو راه حل رو عملی کرد.اگه شما می تونید کمک کنید

    نمی دونم درست توضیح دادم یا خیر

  12. #12
    کاربر دائمی آواتار saied_genius
    تاریخ عضویت
    آبان 1386
    محل زندگی
    IRAN فعلاً ...
    پست
    595

    نقل قول: گرفتن بکاپ از دیتا بیس (فقط داده ها نه ساختار)

    خوب حالا مسئله روشن شد.

    ببينيد، من که گفتم داريد راه را اشتباه مي رويد.

    شما وقتي برنامه را مي خواهيد آپديت کنيد از تغييرات ايجاد شده در ديتابيس script تهيه کنيد و فقط آنرا روي سيستم کاربر اجرا کنيد.

    اينجوري نه ديتابيس طرف مشکل پيدا مي کنه و نه نياز به restore و backup هاي اضافي هست.

    اصل exe را هم که تغيير دهيد هيچگونه مشکلي پيدا نمي کنيد.

    (طبق تجربه چندين ساله)

    نياز به راهنمايي بيشتر داريد در خدمتم.

    موفق باشيد.

  13. #13
    کاربر دائمی آواتار اَرژنگ
    تاریخ عضویت
    آبان 1384
    محل زندگی
    arjang8000@gmail.com
    پست
    2,736

    نقل قول: گرفتن بکاپ از دیتا بیس (فقط داده ها نه ساختار)

    نقل قول نوشته شده توسط mina.net مشاهده تاپیک
    دوست عزیز شما برعکس متوجه شدید.
    فرض کنید من یک برنامه حسابداری به یکی فروختم بعد از مدتی اطلاعاتی در اون ثبت می شه که گاها ارزش اون اطلاعات 10 ها برابر بنامه من خواهد بود البته از نظر کاربر

    خوب این کاربر طبق روال معمول برای خودش هر چند وقت یک بار بکاپتهیه می کنه و نگهداری می کنه.

    بعد از مدتی برنامه توسط من (شرکت تولید کننده نرم افزار مورد نظر) ویرایش می شه و امکانات جدیدی به اون اضافه می شه. طی این ویرایش ممکنه ساختار دیتابس هم تغییر کند.

    خوب حال اگه ما بریم و برنامه جدید رو برای کاربرمون نصب کنیم. باید اطلاعات قدیمی رو برای وی بازیابی کنیم. در اینصورت چه اتفاقی می فته : با ریستور کردن اطلاعات قدیمی کاربر دوباره دیتابیس قدیمی(هم داده ها و هم ساختار) جایگزین دیتابیس جدیدی خواهد شد که این خواست ما نیست ما می خواهیم فقط داده ها ریستور بشن نه ساختار که برای تحقق این خواست باید یکی از دو حالت زیر رو عملی کرد
    1 - از دادههای دیتابیس بکاپ تهیه کنم بدون ساختار
    2- چطور می تونم دیتابیس جدید رو با استفاده از این برنامه جایگزین دیتابیس قبلی کنم. بدون اینکه به داده های آن آسیبی وارد شود.
    که البته من نمی دونم چطور باید یکی از این دو راه حل رو عملی کرد.اگه شما می تونید کمک کنید

    نمی دونم درست توضیح دادم یا خیر
    باید از ورژن سازی داتابیس استفاده کنید،
    یا هم اینکه قبل از نصب برنامه تمام داده‌ها را از داتابیس قدیمی به داتابیس جدید کوچ بدید، باید یک نقشه که کدام فیلد و جدول در کدام داتابیس قدیمی به کدام فیلد و جدول در داتابیس جدید کوچ داده بشه داشته باشید.
    این گونه مشکلات فقط به شکلی قابل حل هستند که بعد از ساختن داتابیس جدید برایه کوچ دادن داتا از قبل برنامه ریزی و تست انجام داده باشید.
    مشکل اصلی آصیب وارد نشدن به داده‌ها نیست، اینکه چه داده‌ای به چه مفهمومی در داتابیس جدید باید تفکیک بشد است.

  14. #14
    کاربر دائمی
    تاریخ عضویت
    شهریور 1387
    سن
    44
    پست
    634

    نقل قول: گرفتن بکاپ از دیتا بیس (فقط داده ها نه ساختار)

    شما وقتي برنامه را مي خواهيد آپديت کنيد از تغييرات ايجاد شده در ديتابيس script تهيه کنيد و فقط آنرا روي سيستم کاربر اجرا کنيد.
    اگه امکانش هست برای من یک مثال بزنید. چون من قبلا این کار رو انجام ندادم.

  15. #15
    کاربر دائمی
    تاریخ عضویت
    شهریور 1387
    سن
    44
    پست
    634

    نقل قول: گرفتن بکاپ از دیتا بیس (فقط داده ها نه ساختار)

    نقل قول نوشته شده توسط اَرژنگ مشاهده تاپیک
    باید از ورژن سازی داتابیس استفاده کنید،
    یا هم اینکه قبل از نصب برنامه تمام داده‌ها را از داتابیس قدیمی به داتابیس جدید کوچ بدید، باید یک نقشه که کدام فیلد و جدول در کدام داتابیس قدیمی به کدام فیلد و جدول در داتابیس جدید کوچ داده بشه داشته باشید.
    این گونه مشکلات فقط به شکلی قابل حل هستند که بعد از ساختن داتابیس جدید برایه کوچ دادن داتا از قبل برنامه ریزی و تست انجام داده باشید.
    مشکل اصلی آصیب وارد نشدن به داده‌ها نیست، اینکه چه داده‌ای به چه مفهمومی در داتابیس جدید باید تفکیک بشد است.
    این چیزی که شما می فرمایید به نظر زمان بر می یاد . یعنی خودش یک برنامه برنامه می شه. راستش رو بخواهید برنامه من زود به زود ویرایش می شه و می خوام خیلی زود کاربران هم از این ویرایش ها بهرهمند شوند ولی با این روشی که شما فرمودید کار خیلی سخت می شه. در ضمن من در70 درصد مواقع دیتابیس تغییر ساختاری پیدا نمی کنه. 95 درصد مواقع هم فقط فیلد ها یا جداولی به دیتابیس اضافه یا حذف می شود و خیلی کم پیش می یاد که یک فیلد از لحاظ نوع تغییر کنه. فکر نمی کنم این روشی که شما فرمودید موثر باشه.

  16. #16
    کاربر دائمی آواتار saied_genius
    تاریخ عضویت
    آبان 1386
    محل زندگی
    IRAN فعلاً ...
    پست
    595

    نقل قول: گرفتن بکاپ از دیتا بیس (فقط داده ها نه ساختار)

    نقل قول نوشته شده توسط mina.net مشاهده تاپیک
    اگه امکانش هست برای من یک مثال بزنید. چون من قبلا این کار رو انجام ندادم.
    ساختن table به نام table1 بر روي ديتابيسي به نام test
    USE [test]
    GO
    /****** Object: Table [dbo].[table1] Script Date: 11/02/2009 17:35:03 ******/
    SET ANSI_NULLS ON
    GO
    SET QUOTED_IDENTIFIER ON
    GO
    CREATE TABLE [dbo].[table1](
    [ID] [int] IDENTITY(1,1) NOT NULL,
    [field1] [nvarchar](50) NULL,
    [field2] [nchar](10) NULL,
    [field3] [int] NULL,
    [field4] [image] NULL,
    CONSTRAINT [PK_table1] PRIMARY KEY CLUSTERED
    (
    [ID] ASC
    )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
    ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
    حالا يک script براي اضافه کردن field به table موجود:
    USE [test]
    GO
    /****** Object: Table [dbo].[table1] Script Date: 11/02/2009 17:35:03 ******/
    SET ANSI_NULLS ON
    GO
    SET QUOTED_IDENTIFIER ON
    GO
    Alter TABLE [dbo].[table1]
    add [field5] [nvarchar](50) NULL,
    [field6] [nchar](10) NULL
    حالا شما مثلاً مي خواهيد اين script رو روي سيستم کاربر اجرا نماييد، براي اين کار شما مي توانيد از sqlcmd.exe استفاده نماييد.

    بهترين راه براي اين کار :

    1- اسکريپت مورد نظر را به صورت يک فايل با پسوند sql. بسازيد.
    2- از محيط برنامه خودتون يا يک برنامه ديگر به عنوان updater فايل script ساخته شده را به شکل زير اجرا نماييد:

    System.Diagnostics.Process.Start("sqlcmd.exe", "-S نام سرور -i \"" + نام و مسير فايل مورد نظر جهت آپديت + "\"");
    مثال:

    System.Diagnostics.Process.Start("sqlcmd.exe", "-S .\\sqlexpress -i \"c:\\test.sql\"");
    موفق باشيد.

  17. #17
    کاربر دائمی آواتار اَرژنگ
    تاریخ عضویت
    آبان 1384
    محل زندگی
    arjang8000@gmail.com
    پست
    2,736

    نقل قول: گرفتن بکاپ از دیتا بیس (فقط داده ها نه ساختار)

    نقل قول نوشته شده توسط mina.net مشاهده تاپیک
    این چیزی که شما می فرمایید به نظر زمان بر می یاد . یعنی خودش یک برنامه برنامه می شه. راستش رو بخواهید برنامه من زود به زود ویرایش می شه و می خوام خیلی زود کاربران هم از این ویرایش ها بهرهمند شوند ولی با این روشی که شما فرمودید کار خیلی سخت می شه. در ضمن من در70 درصد مواقع دیتابیس تغییر ساختاری پیدا نمی کنه. 95 درصد مواقع هم فقط فیلد ها یا جداولی به دیتابیس اضافه یا حذف می شود و خیلی کم پیش می یاد که یک فیلد از لحاظ نوع تغییر کنه. فکر نمی کنم این روشی که شما فرمودید موثر باشه.
    یک سوال:
    اگر جایی در داتابیس فیلدی ، ساختاری تغییر کنه، بدانه حساب و کتاب چجوری میشه فهمید که چی عوض شده و بشه مطمعن بود که برنامه کاربر هنوز کار میکنه ؟
    نمیدانم کنتراکتتان چطوریه ولی یادم یکجایی برایه داروخانه برنامه نوشته بودن هر روز که برنامه کار نمیکرد باید خسارت پرداخت میشد، حالا اگر همینطوری بدانه حساب و کتاب داتابیس کاربر را عوض کردن و همه چی به هم ریخت و کار نکرد ، این موضوع چقدر مهمه ؟ اگر که زیاد مهم نیست و میشه بدانه استرس و یواش درستش کرد ، بیخیال ولی اگر که باید خسارت پرداخت بشه و کار مشتری نخوابه ، چیزی که من گفتم نسبط به کاری که واقعا باید انجام بشه هیچ چی نیست، تازه باید قبل از اینکه ورژن جدید بزارید باید از مشتری یک کپی داتابیسش را بگیرید و امتحان کنید که کار کنه، تا زمانی که همه تستها را پس نکنه نمیشه برنامه جدید به مشتری داد.
    من راه درست را برایه اینکه سخت است عوض نمیکنم، اگر راهی را به دلیل راحت بودن استفاده بشه کاره مشتری بخوابه و مشتری غرامت بخواهد چی؟ اونموقع کار سخت کردن درست بود یا اینکه شرکت را نخوابونند؟باید اول بدترین حالت ممکن را در نظر گرفت.

    شاید فقط تبدیل ساختار داتابیس از یک ورژن به یک ورژن دیگر چیزی است که لازم دارید؟


    موفق باشید

  18. #18
    کاربر دائمی
    تاریخ عضویت
    شهریور 1387
    سن
    44
    پست
    634

    نقل قول: گرفتن بکاپ از دیتا بیس (فقط داده ها نه ساختار)

    سلام دوستان
    جناب saied_genius ممنون از کمکی که می کنید . من نتونستم از توضیحاتی که فرمودید استفاده لازم رو ببرم. اگه امکانش هست همین مثال رو در قالب یک برنامه کوچیک برای من بزارید تا دانلود کنم . در ضمن من دیتابیس رو Attach می کنم اگه با توجه به این مثال بزنید ممنون می شم.
    بازم شرمنده از زحمتی که به شما می دم.

  19. #19
    کاربر دائمی آواتار saied_genius
    تاریخ عضویت
    آبان 1386
    محل زندگی
    IRAN فعلاً ...
    پست
    595

    نقل قول: گرفتن بکاپ از دیتا بیس (فقط داده ها نه ساختار)

    سلام

    مثالي که من زدم ربطي به attach بودن يا نبودن database ندارد.

    شما sqlserver را انتخاب مي کنيد و script را اجرا مي کنيد.

    درون script هم نام ديتابيس را وارد مي کنيد.

    مشکل شما در کجاست؟

    کاري را که گفتم اصلاً تست کرديد؟

  20. #20
    کاربر دائمی
    تاریخ عضویت
    شهریور 1387
    سن
    44
    پست
    634

    نقل قول: گرفتن بکاپ از دیتا بیس (فقط داده ها نه ساختار)

    بله اجرا کردم
    از کد شما به صورت زیر

    System.Diagnostics.Process.Start("sqlcmd.exe", "-s .\\sqlexpress -i \" + "C:\Documents and Settings\barbod\Desktop\Tala_stup\1.sql")

    استفاده کردم.ابتدا یک دیتابیس به نام test ایجاد کردم و سپس این کد رو اجرا کردم که هیچ جدولی به دیتابیس اضافه نشد.در ضمن نفهمیدم -s یا -i چه مفهومی دارد و برای چی هست.

  21. #21
    کاربر دائمی آواتار saied_genius
    تاریخ عضویت
    آبان 1386
    محل زندگی
    IRAN فعلاً ...
    پست
    595

    نقل قول: گرفتن بکاپ از دیتا بیس (فقط داده ها نه ساختار)

    نقل قول نوشته شده توسط mina.net مشاهده تاپیک
    بله اجرا کردم
    از کد شما به صورت زیر

    System.Diagnostics.Process.Start("sqlcmd.exe", "-s .\\sqlexpress -i \" + "C:\Documents and Settings\barbod\Desktop\Tala_stup\1.sql")
    استفاده کردم.ابتدا یک دیتابیس به نام test ایجاد کردم و سپس این کد رو اجرا کردم که هیچ جدولی به دیتابیس اضافه نشد.در ضمن نفهمیدم -s یا -i چه مفهومی دارد و برای چی هست.
    به اين صورت تغييرش دهيد:

    System.Diagnostics.Process.Start("sqlcmd.exe", "-s .\\sqlexpress -i C:\\Documents and Settings\\barbod\\Desktop\\Tala_stup\\1.sql\"");
    در مورد راهنماي استفاده هم عرض کردم ؟/sqlcmd.exe

    -s جهت انتخاب سرور
    i- براي اينکه بگوييم script را اجرا کند.
    آخرین ویرایش به وسیله saied_genius : سه شنبه 12 آبان 1388 در 19:33 عصر

  22. #22
    کاربر دائمی
    تاریخ عضویت
    شهریور 1387
    سن
    44
    پست
    634

    نقل قول: گرفتن بکاپ از دیتا بیس (فقط داده ها نه ساختار)

    سلام دوست عزیز هر کاری کردم نشد
    برنامه رو گذاشتم اگه می شه بفرمایید اشکال از کجاست. بازم ممنون از کمکی که می کنید.
    فایل های ضمیمه فایل های ضمیمه

  23. #23
    کاربر دائمی آواتار saied_genius
    تاریخ عضویت
    آبان 1386
    محل زندگی
    IRAN فعلاً ...
    پست
    595

    نقل قول: گرفتن بکاپ از دیتا بیس (فقط داده ها نه ساختار)

    شما توي قسمت C#‎‎‎ اومديد.

    ولي پروژه تان با VB است. از اول بايد مي گفتيد با VB کار مي کنيد.

    در هر صورت فايلتان را اصلاح کردم.

    هم script ها را اصلاح کردم و هم خود برنامه را.

    تست هم کردم ، جواب مي دهد ، مشکل ندارد.

    موفق باشيد.
    فایل های ضمیمه فایل های ضمیمه
    آخرین ویرایش به وسیله saied_genius : چهارشنبه 13 آبان 1388 در 00:04 صبح

  24. #24
    کاربر دائمی
    تاریخ عضویت
    شهریور 1387
    سن
    44
    پست
    634

    نقل قول: گرفتن بکاپ از دیتا بیس (فقط داده ها نه ساختار)

    نقل قول نوشته شده توسط saied_genius مشاهده تاپیک
    شما توي قسمت C#‎‎‎‎‎ اومديد.

    ولي پروژه تان با VB است. از اول بايد مي گفتيد با VB کار مي کنيد.
    تو تالار vb جواب نگرفتم اینجا مطرح کردم البته بایستی به شما می گفتم.
    آخرین ویرایش به وسیله mina.net : چهارشنبه 13 آبان 1388 در 07:56 صبح

  25. #25
    کاربر دائمی
    تاریخ عضویت
    شهریور 1387
    سن
    44
    پست
    634

    نقل قول: گرفتن بکاپ از دیتا بیس (فقط داده ها نه ساختار)

    سلام دوست عزیز
    با تاسف باید بگم بازم نشد.
    موقعی که این کد رو اجرا می کنم یک پنجره ای خیلی سریع ظاهر می شه و بسته می شه تونستم ازش عکس بگیرم

    در صورتی که فابل وجود داره همچین خطای ظاهر می شه بارها آدرس رو چک کردم ولی بازم این خطا ظاهر می شه.
    عکس های ضمیمه عکس های ضمیمه
    • نوع فایل: jpg 1.JPG‏ (17.1 کیلوبایت, 72 دیدار)

  26. #26
    کاربر دائمی آواتار اَرژنگ
    تاریخ عضویت
    آبان 1384
    محل زندگی
    arjang8000@gmail.com
    پست
    2,736

    نقل قول: گرفتن بکاپ از دیتا بیس (فقط داده ها نه ساختار)

    نقل قول نوشته شده توسط mina.net مشاهده تاپیک
    سلام دوست عزیز
    با تاسف باید بگم بازم نشد.
    موقعی که این کد رو اجرا می کنم یک پنجره ای خیلی سریع ظاهر می شه و بسته می شه تونستم ازش عکس بگیرم

    در صورتی که فابل وجود داره همچین خطای ظاهر می شه بارها آدرس رو چک کردم ولی بازم این خطا ظاهر می شه.
    سوال: چرا به جایه اینکه این اعمال را از خارج به داتابیس اعمال کنید در خود منجمنت استودیو اسکیو‌ال سرور انجام نمیدید؟ اینکه چطوری این روش به حل مشکلتان کمک میکنه را من نمیبینم.

  27. #27
    کاربر دائمی
    تاریخ عضویت
    شهریور 1387
    سن
    44
    پست
    634

    نقل قول: گرفتن بکاپ از دیتا بیس (فقط داده ها نه ساختار)

    نقل قول نوشته شده توسط اَرژنگ مشاهده تاپیک
    سوال: چرا به جایه اینکه این اعمال را از خارج به داتابیس اعمال کنید در خود منجمنت استودیو اسکیو‌ال سرور انجام نمیدید؟ اینکه چطوری این روش به حل مشکلتان کمک میکنه را من نمیبینم.
    خوب در اون صورت برای هر کاربر باید به صورت جداگانه دیتابیسش رو بگیرم و تغییرات لازم رو انجام بدم ولی اگه این روشی که شما توضیح دادید رو عملی کنم فقط کافی هست تو برنامه یک گزینه برای اپدیت دیتابیس بزارم و فایل اسکریپ رو برای کاربرم بفرستم کاربر فقط مسیر فایل اسکریپت رو مشخص کرده و دیتابیسش آپدیت خواهد شد.
    درست گفتم؟

  28. #28
    کاربر دائمی آواتار saied_genius
    تاریخ عضویت
    آبان 1386
    محل زندگی
    IRAN فعلاً ...
    پست
    595

    نقل قول: گرفتن بکاپ از دیتا بیس (فقط داده ها نه ساختار)

    نقل قول نوشته شده توسط mina.net مشاهده تاپیک
    سلام دوست عزیز
    با تاسف باید بگم بازم نشد.
    موقعی که این کد رو اجرا می کنم یک پنجره ای خیلی سریع ظاهر می شه و بسته می شه تونستم ازش عکس بگیرم

    در صورتی که فابل وجود داره همچین خطای ظاهر می شه بارها آدرس رو چک کردم ولی بازم این خطا ظاهر می شه.
    اروري که مي دهد مربوط به فاصله اي است که توي مسير فايل دارد.

    برايتان آپديت کردم.

    امتحان کنيد.

    در ضمن همان قبلي را هم اگر مسير فايل را به \:C تغيير مي داديد ، مشکلتان حل مي شد.

    موفق باشيد.
    فایل های ضمیمه فایل های ضمیمه

  29. #29
    کاربر دائمی
    تاریخ عضویت
    شهریور 1387
    سن
    44
    پست
    634

    نقل قول: گرفتن بکاپ از دیتا بیس (فقط داده ها نه ساختار)

    شرمنده اینقدر شما رو اذیت کردم اگه ضروری نبود اینقدر وقت شما رو نمی گرفتم. اون خطا دیگه نمی یاد منتها خطای دیگری ظاهر می شه.
    عکس های ضمیمه عکس های ضمیمه
    • نوع فایل: jpg 2.JPG‏ (35.0 کیلوبایت, 71 دیدار)

  30. #30
    کاربر دائمی آواتار saied_genius
    تاریخ عضویت
    آبان 1386
    محل زندگی
    IRAN فعلاً ...
    پست
    595

    نقل قول: گرفتن بکاپ از دیتا بیس (فقط داده ها نه ساختار)

    نقل قول نوشته شده توسط mina.net مشاهده تاپیک
    شرمنده اینقدر شما رو اذیت کردم اگه ضروری نبود اینقدر وقت شما رو نمی گرفتم. اون خطا دیگه نمی یاد منتها خطای دیگری ظاهر می شه.
    سلام

    خواهش مي کنم.

    مشکلي نيست.

    اين خطا مشکل نيست. مشکل از sql server است . احتمالاً شروع به کار نمي کند.

    اين کار را امتحان کن و دباره برنامه را امتحان کن:

    توي start بر روي run بزن ، سپس بزن cmd
    توي پنجره باز شده بزن:
     net start "sql server (sqlexpress)"


    اين دستور باعث مي شود که اگر sql server هنوز run نشده ، اجرا بشه.

    سپس دوباره برنامه را اجرا کن.

    سوالي بود در خدمتم.

    موفق باشيد.

  31. #31
    کاربر دائمی
    تاریخ عضویت
    شهریور 1387
    سن
    44
    پست
    634

    نقل قول: گرفتن بکاپ از دیتا بیس (فقط داده ها نه ساختار)

    sql , run هست . دوباره اجرا کردم . توضیحاتی هم که شما دادید رو انجام دادم با این وجود نشد. بازم همون خطا قبلی. دیگه دارم کلافه می شم.

  32. #32
    کاربر دائمی آواتار saied_genius
    تاریخ عضویت
    آبان 1386
    محل زندگی
    IRAN فعلاً ...
    پست
    595

    نقل قول: گرفتن بکاپ از دیتا بیس (فقط داده ها نه ساختار)

    آخرين راه حل

    شما script رو مستقيم توي sqlcmd اجرا کن ، يعني مسير و پارامتر ها و ... را توي cmd بزن اجرا کن، ببين اجرا مي کنه ،

    يک راه ديگه هم script ها را توي sql management studio ببين درست اجرا مي کنه؟

  33. #33
    کاربر دائمی
    تاریخ عضویت
    شهریور 1387
    سن
    44
    پست
    634

    نقل قول: گرفتن بکاپ از دیتا بیس (فقط داده ها نه ساختار)

    سلام دوست عزیز
    موفق شدم با استفاده از sqlcommand این کار رو بکنم.

    Dim sqlCom AsNew SqlClient.SqlCommand("", con)
    If con.State = ConnectionState.Closed Then con.Open()
    Dim CREATE_Text AsString = "CREATE TABLE MyCustomers (CustID int IDENTITY (100,1) PRIMARY KEY, CompanyName nvarchar (50))"

    With sqlcom
    .Parameters.Clear()
    .CommandText = CREATE_Text
    .ExecuteNonQuery()
    EndWith


    فکر می کنم همین کار منو راه میندازه .کافی هست متغییر CREATE_Text از بیرون مقدار دهی بشه.
    فقط چند تا کد می خوام.
    1- اضافه کردن یک فیلد به یک جدول
    2- حذف یک جدول
    3- چک کردن وجود یک جدول
    4- چک کردن وجود یک فیلد
    اگه به همراه توضیحات باشه جیلی ممنون می شم.

  34. #34
    کاربر دائمی آواتار saied_genius
    تاریخ عضویت
    آبان 1386
    محل زندگی
    IRAN فعلاً ...
    پست
    595

    نقل قول: گرفتن بکاپ از دیتا بیس (فقط داده ها نه ساختار)

    1- اضافه کردن فيلد: قبلاً براتون گفتم.

    2- حذف جدول: DROP TABLE table_name
    نکته: هيچ فيلد جدول نبايد به عنوان foreign key در جدول ديگري باشد.

    3- چک کردن وجود يک تيبل :
    IF EXISTS (SELECT 1 
    FROM sysobjects
    WHERE xtype='u' AND name='tablename')
    SELECT 'tablename exists.'
    ELSE
    SELECT 'tablename does not exist.'


    4- چک يک فيلد وجود دارد يا نه:

    در مثال زير چک مي کند اگر وجود نداشته باشد اضافه مي کند:
    IF NOT EXISTS (SELECT * FROM INFORMATION_SCHEMA.COLUMN WHERE TABLE_NAME = 'Contact' AND COLUMN_NAME = 'CountyCode')
    ALTER TABLE Contact
    ADD CountyCode nvarchar(10)


    موفق باشيد.

  35. #35
    کاربر دائمی
    تاریخ عضویت
    شهریور 1387
    سن
    44
    پست
    634

    نقل قول: گرفتن بکاپ از دیتا بیس (فقط داده ها نه ساختار)

    sysobjects , INFORMATION_SCHEMA.COLUMN ,Contact

    سلام دوست عزیز اگه می شه در مورد موارد بالا توضیح بدید چیکار می کنن. و در مورد چک کردن وجود یا عدم وجود چی بگردونده خواهد شد یعنی چطور متوجه می شیم نتیجه چی بوده.
    آیا منظور این است که اگه مقدار برگشتی "'tablename exists." وجود دارد و در غیر اینصورت خیر؟
    همه اینها رو از طریق SQlcommand باید اجرا کرد دیگه؟
    در ضمن آیا به نظر شما این روش برای می تونه همیشه یا حداقل 95% مواقع جوابگوی نیاز من باشه؟

  36. #36
    کاربر دائمی آواتار saied_genius
    تاریخ عضویت
    آبان 1386
    محل زندگی
    IRAN فعلاً ...
    پست
    595

    نقل قول: گرفتن بکاپ از دیتا بیس (فقط داده ها نه ساختار)

    ببينيد ...

    اين ها مثال بودند ، خواهشاً کمي دقت کنيد!

    عنوان هاي مورد نياز را با عناوين خود جايگزين کنيد.

    چيزي را هم که گفتيد ثابت هاي sql است براي در آوردن اطلاعات مورد نظر.

    2- در مورد وجود و يا عدم وجود true false بر مي گرداند ولي نياز به مقدار بازگشتي نيست ، چون شما بايد عمليات را توي خود script انجام دهيد (اصوليش همينه) و نياز نيست توي محيط برنامه نويسي چک شود.


    موفق باشيد.

  37. #37
    کاربر دائمی
    تاریخ عضویت
    شهریور 1387
    سن
    44
    پست
    634

    نقل قول: گرفتن بکاپ از دیتا بیس (فقط داده ها نه ساختار)

    با عرض شرمندگی مجدد
    از کد ایجاد و چک کردن table تونستم به درستی استفاده کنم. ولی برای چک کردن و سپس ایجاد فیلد موفق نشدم. من از کد شما به شکل زیر استفاده کردم

    CREATE_Text = "IF NOT EXISTS (SELECT * FROM INFORMATION_SCHEMA.COLUMN WHERE" + _
    " TABLE_NAME = 'MyOrders' AND COLUMN_NAME = 'CountyCode')ALTER TABLE" + _
    " Contact ADD CountyCode nvarchar(10)"

    از این هم استفاده کردم.

    CREATE_Text = "IF NOT EXISTS (SELECT * FROM INFORMATION_SCHEMA.COLUMN WHERE" + _
    " TABLE_NAME = 'MyOrders' AND COLUMN_NAME = 'CountyCode')ALTER TABLE" + _
    " MyOrders ADD CountyCode nvarchar(10)"

    که برای هر دو خطای syntax
    Incorrect syntax near the keyword 'COLUMN'. ظاهر شد. که نمی دونم برای چی هست اگه می شه توضیح بفرمایید.

  38. #38
    کاربر دائمی آواتار saied_genius
    تاریخ عضویت
    آبان 1386
    محل زندگی
    IRAN فعلاً ...
    پست
    595

    نقل قول: گرفتن بکاپ از دیتا بیس (فقط داده ها نه ساختار)

    نقل قول نوشته شده توسط mina.net مشاهده تاپیک
    با عرض شرمندگی مجدد
    از کد ایجاد و چک کردن table تونستم به درستی استفاده کنم. ولی برای چک کردن و سپس ایجاد فیلد موفق نشدم. من از کد شما به شکل زیر استفاده کردم

    CREATE_Text = "IF NOT EXISTS (SELECT * FROM INFORMATION_SCHEMA.COLUMN WHERE" + _
    " TABLE_NAME = 'MyOrders' AND COLUMN_NAME = 'CountyCode')ALTER TABLE" + _
    " Contact ADD CountyCode nvarchar(10)"
    از این هم استفاده کردم.

    CREATE_Text = "IF NOT EXISTS (SELECT * FROM INFORMATION_SCHEMA.COLUMN WHERE" + _
    " TABLE_NAME = 'MyOrders' AND COLUMN_NAME = 'CountyCode')ALTER TABLE" + _
    " MyOrders ADD CountyCode nvarchar(10)"
    که برای هر دو خطای syntax
    Incorrect syntax near the keyword 'COLUMN'. ظاهر شد. که نمی دونم برای چی هست اگه می شه توضیح بفرمایید.

    معذرت مي خواهم ، اشتباه از من بوده ، به اين صورت اصلاح بفرماييد:

    IF NOT EXISTS (SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE
    TABLE_NAME = 'MyOrders' AND COLUMN_NAME = 'CountyCode')ALTER TABLE
    MyOrders ADD CountyCode nvarchar(10)


    موفق باشيد.

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

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