Eric,

while singlestepping thru the code, stop after the sql property has been assigned (or just after execsql) and look at sql.text.

we have a permanent monitor built into our app using the ibo Monitor component.

However, it sound s very much like a transaction problem

Eric Tishler wrote:

As I said in my original email ... "> I have debugged this and can clearly see that ALL the fields have the new data"

Thanks for thinking of it though ...

Eric Tishler
Software Architect
Resolute Partners, LLC
Phone: 203.271.1122
Fax: 203.271.1460
[EMAIL PROTECTED]

-----Original Message-----
From:   [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]  On Behalf Of Robert martin
Sent:   Thursday, April 01, 2004 5:37 PM
To:     NZ Borland Developers Group - Delphi List
Subject:        Re: [DUG] Problem with table update using IBO

Maybe a silly question but ...  Is there definitely a value in
txtEmail.Text?

Rob Martin
Software Engineer

phone 03 377 0495
fax 03 377 0496
web www.chreos.com
----- Original Message ----- From: "Eric Tishler" <[EMAIL PROTECTED]>
To: "NZ Borland Developers Group - Delphi List" <[EMAIL PROTECTED]>
Sent: Friday, April 02, 2004 10:19 AM
Subject: [DUG] Problem with table update using IBO





I have some information I want to allow a user to update in a table.

First I read the data from the table and populate a dialog with the fields


I want to allow as editable.


When the user clicks the Save button I have an update query that gathers


data from the fields and performs an update in the table. This modified data
is used as parameters in the SQL statement.


The problem is that all the fields but one seem to update just fine. The


one field gets the updated information from the dialog, but for some reason
that particular field is not updated in the database table.


The code goes something like this ...

DaDataMod.qryUpdateUserInfo.ParamByName('UserID').asInteger :=


UserInfo.UserID; // This is just a data type with current user info


DaDataMod.qryUpdateUserInfo.ParamByName('FirstName').asString :=


txtFirstName.Text;


DaDataMod.qryUpdateUserInfo.ParamByName('LastName').asString :=


txtLastName.Text;


DaDataMod.qryUpdateUserInfo.ParamByName('EmailAddress').asString :=


txtEmail.Text;


DaDataMod.qryUpdateUserInfo.ExecSQL;
DaDataMod.qryUpdateUserInfo.IB_Transaction.CommitRetaining;


The qryUpdateUserInfo Query looks like this:


UPDATE "UserInfo" SET
"FirstName" = :FirstName,
"LastName" = :LastName,
"EmailAddress" = :EmailAddress
WHERE
"UserID" = :UserID

I have debugged this and can clearly see that ALL the fields have the new


data, but the Email field stubbornly refuses to take on a new value. I have
checked and in the database, the Email field is just a VARCHAR(50).


I have tried to look at the SQL statement submitted (using:


DaDataMod.qryUpdateUserInfo.ServerSQL), but this is what I see in my log
file:


4:56:12 PM 4/1/2004 SaveAccountInfo: SQL=
UPDATE "UserInfo" SET
"FirstName" = ? /* FirstName */ ,
"LastName" = ? /* LastName */ ,
"EmailAddress" = ? /* EmailAddress */
WHERE
"UserID" = ? /* userid */

I have two questions:

1) Is there something better than ServerSQL to use to see that actual SQL


string submitted? I have tried SQL.Text, but that only show the parameters
before the substitution


2) Why would all the fields be updated except the EmailAdress field?

I have been 'noodling' with this for the past 2 hours. Help!

Thanks,

Eric






_______________________________________________
Delphi mailing list
[EMAIL PROTECTED]
http://ns3.123.co.nz/mailman/listinfo/delphi

Reply via email to