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) و بعد چک کنم ببینم بانک برنامه اتچ شده یا نه اگه اتچ شده بود بعد بیام نام بانک برنامه رو عوض کنم ولی اینم خودش یه مشکل داره مشکلشم اینه اگه اون بانک هم روی سرور نباشه بازم به مشکل می خوریم
دوستان اگه نظر خواصی دارین لطفا دریغ نکنید
من با این کد به بانکه اس کیو ال سرور 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) و بعد چک کنم ببینم بانک برنامه اتچ شده یا نه اگه اتچ شده بود بعد بیام نام بانک برنامه رو عوض کنم ولی اینم خودش یه مشکل داره مشکلشم اینه اگه اون بانک هم روی سرور نباشه بازم به مشکل می خوریم
دوستان اگه نظر خواصی دارین لطفا دریغ نکنید