PDA

View Full Version : اس کیو ال و بانک اتچ نشده



farzinf
دوشنبه 24 مرداد 1390, 12:56 عصر
سلام دوستان

من با این کد به بانکه اس کیو ال سرور 2008 کانکت می شم :



Public Conn As ADODB.Connection
Public Rst As ADODB.Recordset
Public SQLQuery As String

Option Explicit

Public Sub LoadAll()

Set Rst = New ADODB.Recordset

Connect

Rst.Source = SQLQuery
Rst.ActiveConnection = Conn
Rst.CursorType = adOpenKeyset
Rst.LockType = adLockOptimistic
Rst.Open

End Sub


Public Sub Connect()

Set Conn = New ADODB.Connection

Conn.Provider = "SQLOLEDB.1"
Conn.ConnectionString = "Provider=SQLOLEDB.1;Data Source=.;Initial Catalog=basedata;Persist Security Info=True;User ID=sa;Password=123"
Conn.CursorLocation = adUseClient
Conn.Open

End Sub



اول برنامه برای اینکه چک بشه ببینم بانک برنامه اتچ شده یا نه اومدم لیست بانک های اس کیو ال رو با این کد گرفتم



Public Sub main()
SQLQuery = "select * from sys.databases where name='basedata'"
Call LoadAll
If Rst.RecordCount = 1 Then
Price_Azad_Del.Show
Else
MsgBox " .ÏíÊÇ ÈíÓ ãæÑÏ äÙÑ Ñæí ÓÑæÑ ãæÌæÏ äãí ÈÇÔÏ ", , "ÎØÇ"
End If
End Sub



اگه بانک اتچ باشه که هیچ مشکلی نیست

ولی اگه بانک اتچ نباشه چون تو این کد اینجا


Conn.ConnectionString = "Provider=SQLOLEDB.1;Data Source=.;Initial Catalog=basedata;Persist Security Info=True;User ID=sa;Password=123"


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

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

دوستان اگه نظر خواصی دارین لطفا دریغ نکنید