Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > Python > Win32 Extensions: problem with ADO.Command.Execute() options

Reply
Thread Tools

Win32 Extensions: problem with ADO.Command.Execute() options

 
 
Jason R. Coombs
Guest
Posts: n/a
 
      07-02-2003
I'm hoping this is a coding error on my part, but I've encountered a problem with parameters that I cannot understand. Perhaps someone out there might be willing to assist me with some suggestions.

First, here is some VB code that correctly does what I want to do:

--------------------------- begin cmdtest.vbs
Dim cn
Dim rs
Dim cmd

Set cn = CreateObject( "ADODB.Connection" )
cn.Open( "Provider=SQLOLEDB;Data Source=(local);Initial Catalog=Environmental Monitoring;Integrated Security=SSPI" )

Set rs = CreateObject( "ADODB.Stream" )
rs.Open()

Set cmd = CreateObject( "ADODB.Command" )

cmd.ActiveConnection = cn
cmd.Properties("Output Stream").Value = rs
cmd.CommandText = "SELECT * FROM [Sources] for XML AUTO"

cmd.Execute , , 1024 'adExecuteStream

rs.Position = 0
WScript.Echo rs.ReadText()
--------------------------- end cmdtest.vbs

Here is partial output I get:
C:\>cscript cmdtest.vbs
Microsoft (R) Windows Script Host Version 5.6
Copyright (C) Microsoft Corporation 1996-2001. All rights reserved.

<Sources ID="1" Name="South Asia" Type="7"/><Sources ID="2" Name="Japan" Type="2"/>...



Now, if I attempt to do the same thing in python, it returns no output.
------------------------- begin cmdtest.py
import ADO, sys

cn = ADO.Connection()
cn.Open( "Provider=SQLOLEDB;Data Source=(local);Initial Catalog=Environmental Monitoring;Integrated Security=SSPI" )

rs = ADO.Stream()
rs.Open()

cmd = ADO.Command()

cmd.ActiveConnection = cn
cmd.Properties("Output Stream").Value = rs
cmd.CommandText = "SELECT * FROM [Sources] for XML AUTO"

cmd.Execute( Options = ADO.constants.adExecuteStream )

rs.Position = 0
sys.stdout.write( rs.ReadText() ) # prints nothing
------------------------- end cmdtest.py

If I pass no parameters to cmd.Execute in the VBScript verison, I get no output. Other tests have further led me to conclude that the constant value 1024 is not being properly passed to ADO.Command.Execute in the Python version only.

Here are some other points of information:
a.. Using the literal 1024 in the Python code instead of the constant reference make no difference.
b.. The VBScript code does not recognize adExecuteStream by name.
c.. Using win32com.client.Dispatch( 'ADODB.*' ) to create the objects (instead of ADO.py created from make PY) yields the same results.
d.. Using a different PROVIDER in the connection (such as SQLXMLOLEDB) will yield different results, but still indicates that the 'adExecuteStream' is not being set proprly.
e.. I'm using "Microsoft ActiveX Data Objects 2.8 Library" for the ADO. I've tried using v2.5, but get identical results.
f.. The first parameter to ADO.Command.Execute appears to be an [out] parameter, but the documentation is confusing and I haven't seen the first parameter used anywhere.

Any insight into this problem would be most appreciated.

Regards,
Jason R. Coombs
Sandia National Laboratories
 
Reply With Quote
 
 
 
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
gcc compiler options for K&R C code Options Utkado C Programming 2 12-18-2008 01:50 PM
why doesn't this "belongs_to" line of code, using options override,not work??? (need help using belongs_to with options) Greg Hauptmann Ruby 1 10-30-2008 10:44 PM
OptionParser - no short options or incomplete options Bryan Richardson Ruby 6 02-25-2008 03:22 AM
Performance issue in multi-level Oracle Object/thin JDBC Options Options jacksu Java 0 10-09-2007 08:21 PM
good compile options for g++ options to enforce good coding Cliff Martin C++ 1 01-31-2007 02:03 AM



Advertisments