Hello,

I'm trying to do something with a dataset, but I think that isn't possible.

Assuming I have the following table:

create table users (
id serial not null primary key,
email varchar(100),
 nickname varchar(20) not null
);

And the following records:

id | email | nickname
1 | us...@domain.com | user1
2 | us...@domain.com | user2
3 | us...@domain.com | user3

I want to clear the email of the second user, but using parameters:

id | email | nickname
1 | us...@domain.com | user1
2 | <null> | user2
3 | us...@domain.com | user3

But when I try this:

  SQLQuery1.SQL.Add('update users set email = :email');
  SQLQuery1.SQL.Add('where id = :id');
  SQLQuery1.ParamByName('id').AsInteger := 2;
  SQLQuery1.ParamByName('email').Clear;
  SQLQuery1.ExecSQL;
  SQLTransaction1.Commit;

I got:

"Project project1 raised exception class "EDatabaseError" with message:
PQConnection1: Unknown fieldtype for parameter "email"."

I know that I could solve easily via literal string, but I need to use
parameters anyway.

How I solve this?

Here in Brazil, a friend suggested this:

  VParam := SQLQuery1.ParamByName('email');
  VParam.DataType := ftString;
  VParam.Clear

Is this the only way? '-'

Thank you!

-- 
Silvio Clécio
My public projects - github.com/silvioprog
_______________________________________________
fpc-pascal maillist  -  fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-pascal

Reply via email to