My two cents worth: I see a few problems:
1) There is an erroneous END just above PRINT iData near the end of your 
example or 
   something is out of order(?)
2) iData is a Result data type and not an INTEGER...and iData doesn't have the 
row counts
   but iData.count is an INTEGER
3) Internally MySQL has two different types of ROW counts depending on:
   [a] the number of rows resulting by a SELECT or SHOW command.
   [b] the number of rows affected  by a INSERT, UPDATE, REPLACE or DELETE 
command.

Programs must:
   First do the command (SELECT, INSERT..whatever...)
    - Then-
   Do another separate command to get the rows resulting or affected 
   by the type of command performed (type [a] or [b])

To help in understanding what is happening visit:
http://dev.mysql.com/doc/refman/5.1/en/mysql-affected-rows.html
http://dev.mysql.com/doc/refman/5.1/en/information-functions.html
   (look at 'found-rows' and 'row-count' functions)

Try this:

PRINT iData.count   'should report correctly for SELECT and SHOW

I don't recall right now about getting the affected rows
from INSERT, DELETE, REPLACE commands.

-Fernando



---------- Original Message -----------
From: ron...@rrgweb.net
To: gambas-user@lists.sourceforge.net
Sent: Thu, 5 Apr 2012 21:17:52 -0400
Subject: [Gambas-user] Problem with row count in mysql

> I am having trouble getting a row count using mysql.  Here is some sample
> code I have used.  All else works and I can connect to the database and
> table.
> There are 4 rows in the Table called Addresses.  Running this program
> shows iData and 'a' as having 0 rows.  Please advise.
> 
> Thank you
> Ron
> 
> Example code:
> 
> ' Gambas class file
> STATIC PUBLIC a AS Integer
> 
> PUBLIC SUB Form_Open()
> 
>   ME.Center
>   ME.Height = 315
>   $hConn = NEW Connection
> 
> END
> 
> PRIVATE $hConn AS Connection
> 
> PUBLIC SUB btnConnect_Click()
> 
> DIM sName AS String
> DIM hTable AS Table
> DIM iData AS Result
> 
>   TRY $hConn.Close
>   '$hConn = NEW Connection
> 
>   sName = "AddressBook"
> 
>   WITH $hConn
>     .Type = "mysql"
>     .Host = "localhost"
>     .Login = "root"
>     .Password = "charlie12"
>     .Name = ""
>   END WITH
> 
>   'IF chkCreate.Value THEN
> 
>     $hConn.Open
>     IF NOT $hConn.Databases.Exist(sName) THEN
>       $hConn.Databases.Add(sName)
>     ENDIF
>     $hConn.Close
> 
>   $hConn.Name = sName
>   $hConn.Open
>   TextLabel1.text = "AddressBook Opened for Addresses"
> 
>  IF NOT $hConn.Tables.Exist("Addresses") THEN
>   hTable = $hConn.Tables.Add("Addresses")
> 
>   hTable.Fields.Add("id", db.Long)
>   hTable.Fields.Add("First_Name", db.String)
>   'hTable.Fields.Add("Mi", gb.String)
>   'hTable.Fields.Add("Last_Name", gb.String)
>   'hTable.Fields.Add("Address1", gb.String)
>   'hTable.Fields.Add("Address2", gb.String)
>   'hTable.Fields.Add("City", gb.String)
>   'hTable.Fields.Add("State", gb.String)
>   'hTable.Fields.Add("Zip_Code", gb.String)
>   'hTable.Fields.Add("Home_Phone", gb.String)
>   'hTable.Fields.Add("Cell_Phone", gb.String)
>   'hTable.Fields.Add("Email_Address", gb.String)
> 
>   hTable.PrimaryKey = ["id"]
> 
>   hTable.Update
>   ELSE
> 
> ENDIF
> 
> $hConn.Exec("use AddressBook;")
>   iData = $hConn.Exec("select count(*) from Addresses;")
> 
> PRINT iData
> a = iData
> PRINT a
> 
> END
> 
> PUBLIC SUB btnClose_Click()
> 
>   $hConn.Close
>   TextLabel1.Text = "AddressBook Closed"
>   WAIT 4.0
>   ME.Close
> 
> END
> 
> PUBLIC SUB btnAddSddress_Click()
> 
>  ME.Height = 770
> 
> END
> 
> PUBLIC SUB btnSave_Click()
> DIM rdata AS Result
> txtRequest.Text = "insert into Addresses values('" & a & "','" &
> txtFirstName.Text & "');" '& "(" & "'" & a & "'," & "'" &
> txtFirstName.Text & "');"
> rdata = $hConn.Exec(txtRequest.Text)
>   INC a
>   PRINT a
> 
>   END
> 
> PRINT idata
> a = iData
> PRINT a
> 
> END
> 
> ------------------------------------------------------------------------------
> For Developers, A Lot Can Happen In A Second.
> Boundary is the first to Know...and Tell You.
> Monitor Your Applications in Ultra-Fine Resolution. Try it FREE!
> http://p.sf.net/sfu/Boundary-d2dvs2
> _______________________________________________
> Gambas-user mailing list
> Gambas-user@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/gambas-user
------- End of Original Message -------


------------------------------------------------------------------------------
For Developers, A Lot Can Happen In A Second.
Boundary is the first to Know...and Tell You.
Monitor Your Applications in Ultra-Fine Resolution. Try it FREE!
http://p.sf.net/sfu/Boundary-d2dvs2
_______________________________________________
Gambas-user mailing list
Gambas-user@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/gambas-user

Reply via email to