vbscript - Scriptcontrol object returns recordset object -


i creating library using vbscript , using scriptcontrol object call these routines vba. trying create recordset routine given sql parameter below

sub getdata(sql, byref retrst)  stado = "provider=sqloledb.1;persist security info=false;initial           catalog=ccmsprod;data source=sv-hfi-ccms;uid=vc;pwd=dw;"  cnconn adoconnection set cnconn = createobject("adodb.connection")  cnconn.open stado  msgbox cnconn.connectionstring msgbox cnconn.state      cnconn         .commandtimeout = 0         set retrst = .execute(sql)         msgbox retrst.recordcount     end  cnconn.close end sub 

and calling routine below

          scr.run "getconnection", tempload, rst 

but recordset returns nothing, eventhough connection , recordset created within vbscript.
need in this.

there quite few problems script. i'm not going go in each 1 aware recordset open call has more parameters. aren't required defaults adforwardonly cursor type, , adlockreadonly locking. using defaults not enable record count recordset code provide shows value of first record in recordset indicate data retrieved.

https://support.microsoft.com/en-us/help/272067/how-to-get-a-record-count-from-a-sql-server-ce-recordset

the code below works you'll need modify usage. batch file run script:

getrecordset.bat

cscript.exe /nologo getrecordset.vbs pause 

script run:

getrecordset.vbs

dim objadorecordset dim strdbtablename  on error resume next  '*****modify below table name in database***** strdbtablename = "somedbtablename"  set objadorecordset = createobject("adodb.recordset") if err.number = 0     getrecordset "select * " & strdbtablename, objadorecordset     objadorecordset         if not .bof             .movefirst             wscript.echo "field 0: " & .fields(0).value         else             wscript.echo "no records in recordset"         end if     end else     wscript.echo "unable create ado recordset" end if set objadorecordset = nothing  wscript.quit  '*********************************************  sub getrecordset(astrsqlquery, aobjrecordset)     dim stroleconnect     dim struserid     dim struserpw     dim objadoconnection      on error resume next      wscript.echo "sqlquery: " & astrsqlquery      stroleconnect = "provider=sqloledb.1;persist security info=false;initial catalog=ccmsprod;data source=sv-hfi-ccms;uid=vc;pwd=dw;"     struserid = "vc"     struserpw = "dw"      set objadoconnection = createobject("adodb.connection")     if err.number = 0         objadoconnection.open stroleconnect, struserid, struserpw         if err.number = 0             aobjrecordset.open astrsqlquery, objadoconnection             if err.number <> 0                 wscript.echo "recordset open failed error=" & err.number             end if         else             wscript.echo "connection open failed error=" & err.number         end if     else         wscript.echo "ado connection failed error=" & err.number     end if     set objadoconnection = nothing end sub 

i left similar code can understand should create , open ado connection before adorecordset. typically open connection, run of required queries , process them before closing connection. there's no sense in creating new connection same database multiple times different queries same database. adds unnecessary overhead. i'll leave improve code use.


Comments

Popular posts from this blog

javascript - Create a stacked percentage column -

Optimising Firebase database by automatically overwriting data -

javascript - Angular UI-Grid customTemplate directive causing rows to load slowly/? -