Sign in to follow this  
Followers 0
rmock

SQL Result Loop

5 posts in this topic

I am running an SQL script and can easily write results as long as there is only one result:

FileWriteLine($TextTemplate,$adoRs.Fields(1).value & ', ' & $adoRs.Fields(2).value)

Can anyone give me any good direction on how to create a loop when the number of results is not constant? I am fairly new to autoIT and I know the following is far from correct. When I run this script it seems to be an infinite loop:

$countBan = 0
While 1
$countBan = $countBan + 1
If $countBan < 0 Then ExitLoop
WEnd

While Not $adoRs.eof
For $i = 0 To $countBan
$ln[$i] = $adoRs.Fields(1).value
$fn[$i] = $adoRs.Fields(2).value
Next
WEnd

For $i = 0 To $countBan
FileWriteLine($TextTemplate,$adoRs.$ln[$i] & ', ' & $fn[$i])
Next

Share this post


Link to post
Share on other sites



Check this

You loop throught the recordset until recordset.EOF = True, using recordset.Movenext to get the next record.

Details can be found here.


My UDFs and Tutorials:

Spoiler

UDFs:
Active Directory (NEW 2017-04-18 - Version 1.4.8.0) - Download - General Help & Support - Example Scripts - Wiki
OutlookEX (NEW 2017-02-27 - Version 1.3.1.0) - Download - General Help & Support - Example Scripts - Wiki
ExcelChart (2015-04-01 - Version 0.4.0.0) - Download - General Help & Support - Example Scripts
Excel - Example Scripts - Wiki
Word - Wiki
PowerPoint (2015-06-06 - Version 0.0.5.0) - Download - General Help & Support

Tutorials:
ADO - Wiki

 

Share this post


Link to post
Share on other sites

#3 ·  Posted (edited)

rmock,

Look at this code

$countBan = 0
While 1
$countBan = $countBan + 1
If $countBan < 0 Then ExitLoop
WEnd

When does $countban < 0 test true?

kylomas

edit: additional info

2ND - you need to advance the record pointer, as water has pointed out

3RD - you are using the variable $countban as both a scalar variable and an array

4TH - For further help you should post runnable code.

Edited by kylomas

Forum Rules         Procedure for posting code

"I like pigs.  Dogs look up to us.  Cats look down on us.  Pigs treat us as equals."

- Sir Winston Churchill

Share this post


Link to post
Share on other sites

There is a much simpler code to fill an array (possibly empty or very large) with the whole resultset:

$aRows = $adoRS.GetRows()


This wonderful site allows debugging and testing regular expressions (many flavors available). An absolute must have in your bookmarks.
Another excellent RegExp tutorial. Don't forget downloading your copy of up-to-date pcretest.exe and pcregrep.exe here
RegExp tutorial: enough to get started
PCRE v8.33 regexp documentation latest available release and currently implemented in AutoIt beta.

SQLitespeed is another feature-rich premier SQLite manager (includes import/export). Well worth a try.
SQLite Expert (freeware Personal Edition or payware Pro version) is a very useful SQLite database manager.
An excellent eBook covering almost every aspect of SQLite3: a must-read for anyone doing serious work.
SQL tutorial (covers "generic" SQL, but most of it applies to SQLite as well)
A work-in-progress SQLite3 tutorial. Don't miss other LxyzTHW pages!
SQLite official website with full documentation (may be newer than the SQLite library that comes standard with AutoIt)

Share this post


Link to post
Share on other sites

Thanks jchd,

learned something new today :graduated:


My UDFs and Tutorials:

Spoiler

UDFs:
Active Directory (NEW 2017-04-18 - Version 1.4.8.0) - Download - General Help & Support - Example Scripts - Wiki
OutlookEX (NEW 2017-02-27 - Version 1.3.1.0) - Download - General Help & Support - Example Scripts - Wiki
ExcelChart (2015-04-01 - Version 0.4.0.0) - Download - General Help & Support - Example Scripts
Excel - Example Scripts - Wiki
Word - Wiki
PowerPoint (2015-06-06 - Version 0.0.5.0) - Download - General Help & Support

Tutorials:
ADO - Wiki

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now
Sign in to follow this  
Followers 0