Tags

, , , , , , , , , , ,

SQL server adalah Database Management System yang cukup terkenal dan dibuat oleh Microsoft. SYang pertama kali saya tahu adalah SQL server 2000, kemudian berlanjut ke SQL server 2005 dan sekarang yang terbaru adalah SQL Server 2008.

Saya memiliki sebuah job, dimana saya menggunakan Visual Basic 6 untuk pemrogramannya dan SQL Server 2000 sebagai Database Management. Saya menggunakan ADODB sebagai koneksi antara Visual Basic 6 dengan SQL Server. Untuk membuka koneksi, diperlukan syntax berikut:

cn.Open "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=berdikari;Data Source=HENRY"

HENRY adalah nama  SQL Server di komputer saya. Pada saat program sudah jadi, saya harus membawa program saya ke komputer client dengan nama SQL Server yang berbeda. Saya harus mengganti Data Source dan terkadang cukup merepotkan juga (mungkin tidak semua orang merasa repot) karena saya harus menginstall Visual Basic 6 di komputer client. Kesimpulannya, saya menggunakan syntax-syntax di bawah ini untuk mendapatkan nama Server secara otomatis.

Private Declare Function GetWindowsDirectory Lib "kernel32" Alias "GetWindowsDirectoryA" (ByVal lpBuffer As String, ByVal nSize As Long) As Long

Private Function GetSerName() As String
''''Project -> References - Add Microsoft Scripting RunTime For File System Object
Dim fso As New FileSystemObject
Dim Dirstr As String
Dirstr = GetWindowsDir()
If fso.FileExists(Dirstr & "\sqlstp.log") = True Then
Open Dirstr & "\sqlstp.log" For Input As #1
Do While Not EOF(1)
Line Input #1, TxtStr
If UCase(Mid(Trim(TxtStr), 10, 4)) = "NAME" Then Exit Do
Loop
Close #1
GetSerName = Mid(Trim(TxtStr), 17, InStr(17, Trim(TxtStr), ",") - 17)
Else
MsgBox "SqlServer 2000 Not Installed Properly ....."
End If
End Function
Private Function GetWindowsDir() As String
Dim Temp As String
Dim Ret As Long
Const MAX_LENGTH = 145

Temp = String$(MAX_LENGTH, 0)
Ret = GetWindowsDirectory(Temp, MAX_LENGTH)
Temp = Left$(Temp, Ret)
If Temp <> "" And Right$(Temp, 1) <> "\" Then
GetWindowsDir = Temp & "\"
Else
GetWindowsDir = Temp
End If
End Function

Jangan lupa untuk menambahkan reference dengan memilih menu Project -> References -> centang Microsoft Scripting RunTime. Dengan Syntax di atas, saya cukup mengubah koneksi antara VB6 dan SQL Server menjadi:

cn.Open "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=berdikari;Data Source=" & GetSerName