Home All Groups Group Topic Archive Search About

Access queryDef as stored procedure

Author
3 Jan 2006 7:07 PM
jonefer
in the 'Access Cookbook' by Getz, Litwin and Baron, it shows how to get a
qryAlternativeAlbums query as an OleDbDataReader:

'Construct an OleDbCommand to execute the query
Dim AltRock as OleDbCommand = _
New OleDbCommand("qryAlternativeAlbums", cnx)

'Odd as it may seem, you need to set the CommandType
'to CommandType.StoredProcedure.
cmdAltRock.CommandType = CommandType.StoredProcedure

'Run the query and place the rows in an OledbDataReader.
Dim drAltRock as OleDbDataReader
drAltRock = cmdAltRock.ExecuteReader

'Bind the OleDbDataReader to the DataGrid
dgrAltRock.DataSource = drAltRock
dgrAltRock.DataBind()


As an Access developer, this was exciting news, as I thought I presently had
no way to use joins to Union queries, etc...

Anyhow, I was wondering if I can use the DataAdapter in the same fashion?
Please help me get any kinks out if this is possible.
And if not, how can I parameterize a DataReader - is this possible?

Author
3 Jan 2006 9:29 PM
Mary Chipman [MSFT]
Access SQL has always supported UNION and UNION ALL queries. You can
save them and execute them using the code you posted. There's no point
in using a DataAdapter with a UNION query because it is not
updateable. You can supply parameter values to your command object in
the usual way -- see the OleDbParameter topic in Help for more
information.

--Mary

On Tue, 3 Jan 2006 11:07:03 -0800, "jonefer"
<jone***@discussions.microsoft.com> wrote:

Show quote
>in the 'Access Cookbook' by Getz, Litwin and Baron, it shows how to get a
>qryAlternativeAlbums query as an OleDbDataReader:
>
>'Construct an OleDbCommand to execute the query
>Dim AltRock as OleDbCommand = _
>New OleDbCommand("qryAlternativeAlbums", cnx)
>
>'Odd as it may seem, you need to set the CommandType
>'to CommandType.StoredProcedure.
>cmdAltRock.CommandType = CommandType.StoredProcedure
>
>'Run the query and place the rows in an OledbDataReader.
>Dim drAltRock as OleDbDataReader
>drAltRock = cmdAltRock.ExecuteReader
>
>'Bind the OleDbDataReader to the DataGrid
>dgrAltRock.DataSource = drAltRock
>dgrAltRock.DataBind()
>
>
>As an Access developer, this was exciting news, as I thought I presently had
>no way to use joins to Union queries, etc...
>
>Anyhow, I was wondering if I can use the DataAdapter in the same fashion?
>Please help me get any kinks out if this is possible.
>And if not, how can I parameterize a DataReader - is this possible?
>
Author
3 Jan 2006 11:40 PM
Robbe Morris [C# MVP]
I'm a little confused by your question.  That said, this
ADO.NET code generator will write the object oriented
data access layers needed to call all of your stored
queries/database statements in Microsoft Access.

It may help you...

http://www.eggheadcafe.com/articles/microsoftaccess_source_code_generator.asp

--
Robbe Morris - 2004/2005 Microsoft MVP C#
http://www.eggheadcafe.com/forums/merit.asp





Show quote
"jonefer" <jone***@discussions.microsoft.com> wrote in message
news:9B7663CC-EB1E-40A6-AB81-6F8831F726E9@microsoft.com...
> in the 'Access Cookbook' by Getz, Litwin and Baron, it shows how to get a
> qryAlternativeAlbums query as an OleDbDataReader:
>
> 'Construct an OleDbCommand to execute the query
> Dim AltRock as OleDbCommand = _
> New OleDbCommand("qryAlternativeAlbums", cnx)
>
> 'Odd as it may seem, you need to set the CommandType
> 'to CommandType.StoredProcedure.
> cmdAltRock.CommandType = CommandType.StoredProcedure
>
> 'Run the query and place the rows in an OledbDataReader.
> Dim drAltRock as OleDbDataReader
> drAltRock = cmdAltRock.ExecuteReader
>
> 'Bind the OleDbDataReader to the DataGrid
> dgrAltRock.DataSource = drAltRock
> dgrAltRock.DataBind()
>
>
> As an Access developer, this was exciting news, as I thought I presently
> had
> no way to use joins to Union queries, etc...
>
> Anyhow, I was wondering if I can use the DataAdapter in the same fashion?
> Please help me get any kinks out if this is possible.
> And if not, how can I parameterize a DataReader - is this possible?
>
>
Author
4 Jan 2006 3:51 PM
Paul Clement
On Tue, 3 Jan 2006 11:07:03 -0800, "jonefer" <jone***@discussions.microsoft.com> wrote:

¤ in the 'Access Cookbook' by Getz, Litwin and Baron, it shows how to get a
¤ qryAlternativeAlbums query as an OleDbDataReader:
¤
¤ 'Construct an OleDbCommand to execute the query
¤ Dim AltRock as OleDbCommand = _
¤ New OleDbCommand("qryAlternativeAlbums", cnx)
¤
¤ 'Odd as it may seem, you need to set the CommandType
¤ 'to CommandType.StoredProcedure.
¤ cmdAltRock.CommandType = CommandType.StoredProcedure
¤
¤ 'Run the query and place the rows in an OledbDataReader.
¤ Dim drAltRock as OleDbDataReader
¤ drAltRock = cmdAltRock.ExecuteReader
¤
¤ 'Bind the OleDbDataReader to the DataGrid
¤ dgrAltRock.DataSource = drAltRock
¤ dgrAltRock.DataBind()
¤
¤
¤ As an Access developer, this was exciting news, as I thought I presently had
¤ no way to use joins to Union queries, etc...
¤
¤ Anyhow, I was wondering if I can use the DataAdapter in the same fashion?
¤ Please help me get any kinks out if this is possible.
¤ And if not, how can I parameterize a DataReader - is this possible?
¤

Yes, you can run an Access QueryDef using a DataAdapter:

        Dim AccessConn As System.Data.OleDb.OleDbConnection
        Dim AccessCommand As System.Data.OleDb.OleDbCommand
        Dim AccessReader As System.Data.OleDb.OleDbDataReader
        Dim ConnectionString As String

        ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
            "Data Source=e:\My Documents\db1.mdb;" & _
            "Jet OLEDB:System database=C:\Winnt\System32\System.MDW;" & _
            "User ID=Admin;" & _
            "Password="

        AccessConn = New System.Data.OleDb.OleDbConnection(ConnectionString)

        AccessConn.Open()
        AccessCommand = New System.Data.OleDb.OleDbCommand("ValidateUser", AccessConn)
        AccessCommand.CommandType = CommandType.StoredProcedure
        Console.WriteLine(AccessCommand.CommandText)
        AccessCommand.Parameters.Add("@pUserID", CType(System.Data.OleDb.OleDbType.VarWChar,
System.Data.OleDb.OleDbType), 15).Value = "username"
        AccessCommand.Parameters.Add("@pPassword", CType(System.Data.OleDb.OleDbType.VarWChar,
System.Data.OleDb.OleDbType), 15).Value = "password"

        Dim da As System.Data.OleDb.OleDbDataAdapter = New System.Data.OleDb.OleDbDataAdapter
        With da
            .SelectCommand = AccessCommand
        End With

        Dim ds As New DataSet
        da.Fill(ds)

The following uses the DataReader w/the above Command:

        AccessReader = AccessCommand.ExecuteReader


Paul
~~~~
Microsoft MVP (Visual Basic)

AddThis Social Bookmark Button