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

نام تاپیک: Attach کردن بانک اسکیول سرور

  1. #1
    کاربر دائمی آواتار ali_md110
    تاریخ عضویت
    فروردین 1385
    محل زندگی
    شیراز
    پست
    1,181

    Attach کردن بانک اسکیول سرور

    بنام خدا
    یک روش برای وصل کردن دیتابیس بر روی اسکیول سرور اجرای اسکریپتهای اسکیول میباشد در زیر یک پروژه جهت Attach کردن بانک اسکیول به پایگاه اسکیول سرور توضیح داده شده
    دقت کنید این برنامه به همراه پروژه نصب یا INSTALL شما اجرا میشود
    چنانچه از داخل پروژه و خود ویژوال استودیو برنامه را Run کنید برنامه اجرا نمیشود باید پس از ساخت برنامه نصب , setup را اجرا کنید , خود برنامه نصب عمل Attach را انجام میدهد
    مرحله اول
    ابتدا از منوی file گزینه New > Project و زبان ویژوال بیسیک را انتخاب میکنیم در قسمت Temlates گزینه Class Library و یک نام دلخواه مثلا DBsetup برای کلاسمون انتخاب میکنیم
    میبندیم
    مرحله دوم
    ابتدا باید یک کلاس نصب بسازیم
    در قسمت Solution Explorer گزینه Class1.vb را حذف و بر روی نام پروژه(( DBsetup کلیک راست کرده گزینه Add و سپس New Item را انتخاب و در پنجره با ز شده در قسمت Templates یک کلاس نصب کننده یعنی گزینه Installer Class را از آیتم های موجود انتخاب با یک نام دلخواه مثلا Installer1.vb نامگزاری میکنیم .این مسیر از طریق منوی Project و زیر منوی Add New Item هم قابل دسترسی است
    ( دقت کنید در ویژوال استودیو 2008 این گزینه Installer Class در گره General قرار گرفته )
    مرحله سوم
    باید یک فایل Txt را به پروژه اضافه کنیم این فایل در برگیرنده دستورات اسکیول یا همان SQL statement هست که با آن بانک و جداول و سایر جزئیات را میسازیم
    از طریق منوی Project و زیر منوی Add New Item یک فایل file Text بنام sql.txt را به پروژه اضافه میکنیم
    در سولوشن اکسپلورر sql.txt رو انتخاب ودر پنجره Properties خاصیت BuildAction
    این فایل را به Embedded Resource تغییر داده sql.txt را باز کرده و دستورات اسکیول برای ساخت جداول بانک برنامه را در این فایل قرار میدهیم حتی میتوان اسکریپت ساخت بانک را در این قسمت قرار داد
    CREATE TABLE [dbo].[Employees] (
    [Name] [char] (30) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
    [Rsvp] [int] NULL ,
    [Requests] [nvarchar] (4000) COLLATE SQL_Latin1_General_CP1_CI_AS NULL
    ) ON [PRIMARY];

    ALTER TABLE [dbo].[Employees] WITH NOCHECK ADD
    CONSTRAINT [PK_Employees] PRIMARY KEY CLUSTERED
    (
    [Name]
    ) ON [PRIMARY]

    این دستورات را میتوانید از طریق برنامه sql server management آماده کنید
    مرحله چهارم
    در سولوشن اکسپلورر کلاس نصبی را که اضافه کردیم (Installer1.vb) را انتخاب کرده با کلیک راست بر روی آن View Code را انتخاب کرده به قسمت کدنویسی کلاس میرویم
    1-	در قسمت جنرال برنامه در بالای ماژول دستورات زیر را imports  میکنیم
    Imports System.IO
    Imports System.Reflection
    Imports System.Data.SqlClient

    Public Class Installer1
    2-یک کانکشن از نوع اسکیول تعریف کرده

    Dim masterConnection As New System.Data.SqlClient.SqlConnection

    Public Sub New()
    MyBase.New()
    چنانچه قصد نصب بر روی لوکال یا نسخه ای از اسکیول سرور مانند 2000 دارید از یکی از رشته اتصالهای زیر استفاده کنید
    masterConnection.ConnectionString = "Data Source=(local);Initial Catalog=master;Integrated Security=True"
    یا
    masterConnection.ConnectionString = "packet size=4096;integrated security=SSPI;" & "data source=""(local)"";persist security info=False;" & "initial catalog=master"
    اگر میخواهید بر روی نسخه اکسپرس2005 اسکیول سرور نصب کنید میتونید از رشته اتصالهای زیر استفاده کنید
    masterConnection.ConnectionString = "Data Source=.\sqlexpress;Initial
    Catalog=master;Integrated Security=True"
    masterConnection.ConnectionString = "Data Source=(local)\sqlexpress;Initial Catalog=master;Integrated Security=True"
    InitializeComponent()
    End Sub
    کدهای زیر را پس از ساب روتین New اضافه کنید
    Private Function GetSql(ByVal Name As String) As String
    Try


    Dim Asm As [Assembly] = [Assembly].GetExecutingAssembly()


    Dim strm As Stream = Asm.GetManifestResourceStream( _
    Asm.GetName().Name + "." + Name)


    Dim reader As StreamReader = New StreamReader(strm)
    Return reader.ReadToEnd()

    Catch ex As Exception
    MsgBox("In GetSQL: " & ex.Message)
    Throw ex
    End Try
    End Function
    Private Sub ExecuteSql(ByVal DatabaseName As String, ByVal Sql As String)
    رشته اتصال را میتوان در این قسمت هم مقدار دهی کرد
    'masterConnection.ConnectionString = "Data Source=(local);Initial 'Catalog=master;Integrated Security=True"

    Dim Command As New SqlClient.SqlCommand(Sql, masterConnection)
    Command.Connection.Open()
    Command.Connection.ChangeDatabase(DatabaseName)
    Try
    Command.ExecuteNonQuery()
    Finally
    Command.Connection.Close()
    End Try
    End Sub

    Protected Sub AddDBTable(ByVal strDBName As String)
    Try
    جهت ساختن دیتابیس
    ExecuteSql("master", "CREATE DATABASE " + strDBName)

    جهت ساختن جدول
    ExecuteSql(strDBName, GetSql("sql.txt"))

    Catch ex As Exception
    MsgBox("In exception handler: " & ex.Message)
    Throw ex
    End Try
    End Sub

    Public Overrides Sub Install(ByVal stateSaver As _
    System.Collections.IDictionary)

    MyBase.Install(stateSaver)
    AddDBTable(Me.Context.Parameters.Item("dbname"))

    End Sub

    از منوی Build گزینه DBsetup Build را انتخاب کرده کامپایل میکنیم
    مرحله پنجم
    حالا نوبت اضافه کردن پروژه نصب به برنامه میباشد
    از منوی File گزینه Add سپس New Project در دیالوگ Add New Project گره Other Project Types را باز کرده Setup and Deployment Projects و ایتم Setup Project را انتخاب کرده و نام پروژه نصب را DB_Setup میگزاریم

    در سولوشن اکسپلورر بر روی پروژه نصب (DB_Setup )کلیک راست کرده گزینه View را و سپس File System را انتخاب میکنیم در قسمت File system Editor
    Application Folder را انتخاب کرده از منوی Action گزینه Add و سپس Project Output را انتخاب در دیالوگ Add Project Outpot Group گزینه Primary output را بر میگزینیم سپس ok
    مرجله ششم
    در این مرحله نوبت به ساخت دیالوگهای دلخواه برای پروژه نصب میرسه
    دیالوگها جهت ورود پارامترهای مورد نیاز کلاس نصب میباشد
    پروژه نصب را در سولوشن انتخاب کرده با کلیک راست بر روی ان از طریق view سپسUser Interface را انتخاب کرده در User interface editor گره start زیر Install را انتخاب کرده با کلیک راست بر روی start یا از طریق منوی Action و انتخاب گزینه Add Dialog یک دیالوگ از نوع Textboxes(A) انتخاب میکنیم دیالوگ اضافه شده را انتخاب کنید و از منوی Action از طریق زیر منوی Move Up این دیالوگ را به بالا حرکت دهید تا زیر دیالوگ Welcom قرار گیرد اینکار را از طریق دراگ کردن توسط موس هم میتوان انجام داد
    حالا دیالوگ اضافه شده را انتخاب کرده در قسمت Properties در قسمت Banner Text یک نام دلخواه مثل specify Database Name در قسمت Bodytext هر چه دوست دارید بنویسید
    در قسمت Edit1lable که یک لیبل جهت مشخص کردن نام بانک هست میتوان با یک نام دلخواه نام گزاری کرد
    مهمترین بخش در اینجا قسمت Edit1Property هست که باید آنرا به یاد داشته باشید از EDITA1 به CA1 تغییر بدهید
    خواص Edit2Visable, Edit3Visable, Edit4Visable,راfalse کنید
    چون کلاس نصب ما یک ارگومان بیشتر ندارد فقط به EditA1 نیاز داریم آن هم جهت مشخص کردن نام بانک برنامه
    حتی میشود این دیالوگ باکس را هم از برنامه نصب حذف کرد و نام دیتابیس را بدون درخواست از کاربر در سرور ثبت کرد


    مرحله هفتم
    مرحله آخر اضافه کردن یک Custom Action به پروژه نصب میباشد
    پروژه نصب را در سولوشن اتخاب کرده با کلیک راست بر روی آن از طریق view سپس Custom Action را انتخاب کرده در Custom Actions Editor گزینه install را انتخاب با کلیک راست برروی install یا از طریق منوی Action با انتخاب گزینه Add Custom Action یک دیالوگ بنام Select Item In Project باز میشود . Application Folder را در دیالوگ نمایش داده شده دابل کلیک کرده و primary output from DBsetup(Active) را انتخاب و ok میکنیم
    و حال ایتم اضافه شده یعنی(Primary output from DBsetup (Active در Custom Action Editor در زیر پوشه install انتخاب کرده(دقت کنید حتما این ایتم انتخاب شده باشد)
    و در قسمت properties خاصیت CustomActionData را به /dbname=[ CA1] تغییر داده و پروژه نصب را از طریق منوی Build DBsetup Build> کامپایل میکنیم
    حالا میتوان با کلیک راست بر روی پروژه نصب در سولوشن و انتخاب install برنامه را تست نمایید یا به مسیر پروژه رفته و از انجا برنامه نصب را اجرا کرد

    میتوان با یک تغییر کوچک مرجله 6 را حذف کرد و برنامه هیچ آرگومان ورودی نیاز نداشته باشد
    کافیست در مرحله هفتم برای خاصیت CustomActionData مقدار /dbname=myDBname را جایگزین /dbname=[ CA1] کنید و بخش 6 را از پروژه حذف کنید
    یا میتوان برنامه ارگومانهای مختلف داشته باشد مانند نام سرور –نام پایگاه – user name – password
    فایل های ضمیمه فایل های ضمیمه
    آخرین ویرایش به وسیله ali_md110 : چهارشنبه 22 آبان 1387 در 00:21 صبح دلیل: اضافه کردن مثال

  2. #2
    کاربر دائمی آواتار Sub Zero
    تاریخ عضویت
    اردیبهشت 1385
    محل زندگی
    اهواز
    پست
    443

    نقل قول: Attach کردن بانک اسکیول سرور

    من دیتابیسهامو به پروژه Setup اضافه کردم چون حاوی داده هستند واین طوری نیست که از اول ساخته بشن.
    با توجه به اینکه بعداز کامپایل کردن پروژه Setup ، فایلها به صورت Cab. هستند. آیا استفاده از این روش امکان پذیره
    آخرین ویرایش به وسیله Sub Zero : سه شنبه 02 مهر 1387 در 14:48 عصر

  3. #3
    کاربر دائمی
    تاریخ عضویت
    شهریور 1389
    محل زندگی
    سیار
    سن
    35
    پست
    414

    نقل قول: Attach کردن بانک اسکیول سرور

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

  4. #4

    نقل قول: Attach کردن بانک اسکیول سرور

    با سلام
    از آموزش شما بسیار ممنونم
    لطفا کمی در مورد تابع Private Function GetSql و Protected Sub AddDBTable و Public Overrides Sub Install و نحوه کار آنها توضیحاتی بفرمائید.
    با تشکر

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

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