Toon posts:

[Delphi / IBX / Interbase] Parameters UpdateQuery

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik gebruik de volgende componenten:

-DBGrid
-DataSource
-IBQuery
-IBUpdateSQL


Als er nu een nieuw record wordt toegevoegd in de DBGrid dan wordt dus de InsertSQL property van het IBUpdateSQL component uitgevoerd. In deze string heb ik parameters staan, bijv: een ID.

Ik wil dus een waarde toekennen aan die parameter (=id) voordat het record gepost wordt. Maar hoe doe ik dat en kan dat wel bij een IBUpdateSQL?

  • whoami
  • Registratie: December 2000
  • Nu online
Heb je bij die componenten niet iets dat vergelijkbaar is met ParamByName ofzo?

https://fgheysels.github.io/


Verwijderd

Topicstarter
Bij een IBQuery wel maar bij een IBUpdateSQL niet.

  • RickN
  • Registratie: December 2001
  • Laatst online: 14-06-2025
Je hoeft die UpdateSQL niet expliciet te gebruiken, dat gebeurt automatisch. Je gaat alsvolgt te werk:

IBQuery.Append;
IBQuery.FieldByName('ID').AsInteger(o.i.d.) := 100;
IBQuery.Post;

Dit alles moet je natuurlijk wel vangen in een try-except blok enzo. En dan moet je in je except blok iig het volgende opnemen:

IBQuery.Cancel;

He who knows only his own side of the case knows little of that.


Verwijderd

object.params[0].asinteger:=waarde

ParamByName kan ook, maar heet niet zo, geloof ik (zit ff niet op m'n plek), bovenstaande werkt zeker.

edit:

Asinteger natuurlijk ;)

  • RickN
  • Registratie: December 2001
  • Laatst online: 14-06-2025
Op dinsdag 29 januari 2002 19:05 schreef TheGentleman het volgende:
object.params[0].asinteger:=waarde

ParamByName kan ook, maar heet niet zo, geloof ik (zit ff niet op m'n plek), bovenstaande werkt zeker.

edit:

Asinteger natuurlijk ;)
Dat betwijfel ik. Daarnaast is het component iig niet zo bedoeld. Zoals ik al zei, het IBUpdateSQL component wordt impliciet gebruikt dat hoef en MOET je niet zelf doen. Gewoon met Append/Insert FieldByName en Post werken. Op dezelfde manier kun je ook Edit FieldByName en Post gebruiken.

He who knows only his own side of the case knows little of that.


Verwijderd

Ik geef toe, als je met een grid werkt, moet 'ie 'em zelf mee kunnen nemen, maar als je lastige parameters wilt meegeven kan het zeker.

Verwijderd

Topicstarter
Bedankt,

dit bleek dus de oplossing te zijn (in de BeforePost event)
code:
1
  IBQueryOverzichtArtikelen.FieldByName('artikelid').AsInteger := GetArtikelID;
Pagina: 1