Database Journal
MS SQL Oracle DB2 Access MySQL PostgreSQL Sybase PHP SQL Etc SQL Scripts & Samples Links Database Forum

» Database Journal Home
» Database Articles
» Database Tutorials
MS SQL
Oracle
DB2
MS Access
MySQL
» RESOURCES
Database Tools
SQL Scripts & Samples
Links
» Database Forum
» Sitemap
Free Newsletters:
DatabaseDaily  
News Via RSS Feed


follow us on Twitter
Database Journal |DBA Support |SQLCourse |SQLCourse2
 

Featured Database Articles

MS SQL

Posted Dec 11, 2000

Another VB-ADO Tool to View Data from a SQL Database

By Danny Lesandrini


Does the World Need Another ADO to SQL Lesson?

Frankly, I didn't think so, but I was wrong.

One of our clients recently requested information about how to connect to their SQL Server database using ADO code in Visual Basic (and/or ASP). Having worked with ADO for a couple of years already and being so comfortable with the technology, I was surprised to receive such a request. But, what seemed like trivial code for me was difficult for my code-novice client.

I scratched out a simple VB form with text boxes to provide the necessary login arguments: Server Name, Database Name, User and Password. The form provides a sample SQL Statement for the Pubs database and attempts to format the results with headers for easy reading.

It was not the intention of this project to create a substitute for the SQL Server Query Analyzer, although it has a similar function. You may execute any SQL statement that returns a recordset (including system stored procs such as sp_Help). The real purpose was to provide a template that could be used by novice coders to create their own ad-hoc ADO to SQL Server reporting tools.

The code of most importance is reproduced below with comments interspersed and the VB project is available for download.     View Screen Shot of Form Here     Sample ASP Code


Code for Connect and Execute Buttons

'********* Connect Command Button Code **************
    Private Sub cmdConnect_Click()
    On Error Resume Next
    
        ' Validate user supplied login arguments
        ' ... validation code goes here
    
        'Create connect string from user input box values
        strConnect = "Provider=SQLOLEDB.1" _
                   & ";User ID=" & Me!txtUID _
                   & ";Password=" & Me!txtPWD _
                   & ";Initial Catalog=" & Me!txtDatabase _
                   & ";Data Source=" & Me!txtServer
               
        Screen.MousePointer = vbHourglass

        'Call sub to test connect string
        If TestConnectString(strConnect) = False Then
            strMsg = "Server not found or login invalid."
            MsgBox strMsg, vbExclamation, "Error"
            'Exit the routine because there was an error
        Else
            'Toggle command buttons and text boxes appropriately
            '... do stuff here
        End If
    
        Screen.MousePointer = vbNormal
        
    End Sub
'********* Test Connect String Sub **************
    Function TestConnectString(ByVal sConn As String) As Boolean
    On Error Resume Next

        Dim cnn As ADODB.Connection
        Set cnn = New ADODB.Connection
        
        'TestConnectString initializes to False by default
        cnn.Open sConn
    
        'No error means that the connect string works!
        If Err.Number = 0 Then TestConnectString = True
    
        ' Clean up and release resources
        cnn.Close
        Set cnn = Nothing

    End Function
'********* Execute Command Button Code **************
    Private Sub cmdExecute_Click()
    On Error Resume Next
    
        Dim cnn As ADODB.Connection
        Dim rst As ADODB.Recordset
        Dim fld As ADODB.Field
        
        Dim strMsg As String
        Dim strHeaders As String
        Dim strResults As String
        
        ' Simple validation that SQL statement exists
        If Len(Me!txtSQL) = 0 Then
            strMsg = "Enter a valid SQL Statement."
            MsgBox strMsg, vbExclamation, "Error"
            Exit Sub
        End If
    
        MousePointer = vbHourglass
        
        ' Instantiate Connection and Recordset objects
        Set cnn = New ADODB.Connection
        Set rst = New ADODB.Recordset
        
        ' Open Connection and Load Recordset
        cnn.Open strConnect
        rst.Open CStr(Me!txtSQL), cnn
        
        ' Create column headers
        For Each fld In rst.Fields
            strHeaders = strHeaders & UCase(fld.Name) & vbTab 
        Next
        
        ' Use the GetString method to retrieve recordset text
        strResults = rst.GetString(adClipString, -1, vbTab, vbCrLf)
        
        ' Return header and data to results pane
        Me!txtResults = strHeaders & vbCrLf & strResults
        
        ' If there was an error then replace the output
        ' text with the description of the error.
        If Err.Number > 0 Then Me!txtResults = Err.Description
        
        ' Clean up and release resources
        rst.Close
        Set rst = Nothing
        cnn.Close
        Set cnn = Nothing
        
        MousePointer = vbNormal
    
    End Sub


Well, that's all there is to it. I've included a sample ASP page which uses the same ADO code and SQL example with the download for this article. As you can see, ADO isn't dificult to implement and works equally well from Visual Basic and ASP. Soon though, we'll be reading more about ADO's little brother, ADO.Net. In a future article I'll provide code to work with the newest of Microsoft's data access technologies.


See All Articles by Columnist Danny Lesandrini




MS SQL Archives

Comment and Contribute

 


(Maximum characters: 1200). You have characters left.

 

 




Latest Forum Threads
MS SQL Forum
Topic By Replies Updated
SQL 2005: SSIS: Error using SQL Server credentials poverty 3 August 17th, 07:43 AM
Need help changing table contents nkawtg 1 August 17th, 03:02 AM
SQL Server Memory confifuration bhosalenarayan 2 August 14th, 05:33 AM
SQL Server Primary Key and a Unique Key katty.jonh 2 July 25th, 10:36 AM


















Thanks for your registration, follow us on our social networks to keep up-to-date