Hi Henry, there were several bugs in your code. This works for me:
Public Declare Function SQLAllocEnv Lib "odbc32.dll" (ByRef env As Integer)
As Short
Public Declare Function SQLAllocConnect Lib "odbc32.dll" (ByVal env As
Integer, ByRef lHdbc As Integer) As Short
Public Declare Function SQLDriverConnect Lib "ODBC32.DLL" (ByVal hDBC As
Integer, ByVal hWnd As Integer, ByVal constr As String, ByVal constrlen As
Short, ByVal buf As String, ByVal buflen As Short, ByRef outlen As Short,
ByVal prompt As Short) As Short
Public Declare Function SQLFreeConnect Lib "odbc32.dll" (ByVal lHdbc As
Integer) As Short
Public Declare Function SQLFreeEnv Lib "odbc32.dll" (ByVal env As Integer)
As Short
Public Declare Function SQLDisconnect Lib "odbc32.dll" (ByVal lHdbc As
Integer) As Short
Private Sub Button_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button.Click
Const SQL_NTS = -3 'Null-terminated string
Const SQL_NOSCAN = 2
Const SQL_NOSCAN_ON = 1
Const SQL_NULL_HENV = 0
Const SQL_NULL_HDBC = 0
Const SQL_NULL_HSTMT = 0
Const SQL_SUCCESS = 0
Const SQL_DROP = 1
Const MAXBUFLEN = 255
Const SQL_DRIVER_PROMPT = 2
Dim Buf As String = New String(" "c, MAXBUFLEN)
Dim constr As String = ""
Dim outlen As Short
Dim Retcode As Short
Dim hEnv As Integer
Dim hDBC As Integer
If SQLAllocEnv(hEnv) = SQL_SUCCESS Then
If SQLAllocConnect(hEnv, hDBC) = SQL_SUCCESS Then
If SQLDriverConnect(hDBC, Me.Handle.ToInt32, constr, Len(constr), _
Buf, MAXBUFLEN, outlen, SQL_DRIVER_PROMPT) = SQL_SUCCESS Then
MsgBox(Buf)
Retcode = SQLDisconnect(hDBC)
End If
Retcode = SQLFreeConnect(hDBC)
End If
Retcode = SQLFreeEnv(hEnv)
End If
End Sub
--
Carlos J. Quintero
MZ-Tools 4.0: Productivity add-ins for Visual Studio .NET
You can code, design and document much faster.
http://www.mztools.com