[Delphi] SQL-query geeft error

Pagina: 1
Acties:

  • Dirickteur
  • Registratie: Januari 2003
  • Laatst online: 14:58
Hoi allemaal

Ik ben sinds vandaag eens begonnen met Borland Delphi om een simpel programmatje te maken dat een Access-database uitleest en soms iets moet toevoegen. De koppeling met de Access-database gaat allemaal prima, echter ik krijg de volgende foutmelding als ik een query run:

"Project Project1.exe raised exception class EOleException with message "De huidige voorziening ondersteunt het retourneren van meerdere recordsets van één uitvoering niet". Process stopped. Use Step or Run to continue."

Het gaat om de volgende query:
code:
1
2
3
4
5
6
7
procedure TForm1.Button1Click(Sender: TObject);
begin
with ADOQuery1 do begin
  Close;
  SQL.Text := 'INSERT INTO `tabel` (`naam`, `nummer`) VALUES ("hoi","hoi")';
  Open;
end;


Volgens mij mag de ADOConnection lezen en schrijven, de tabel/columnamen zijn goed, (allebei ook ingesteld als tekst, anders krijg je trouwens een andere foutmelding).

Weet iemand wat dit kan zijn?

Bedankt!

Update: Hoe krijg ik de resultaten van een Query in bijvoorbeeld een ListBox?:
[rml]Fiat Power in "[ Delphi] SQL-query geeft error"[/rml]

[ Voor 20% gewijzigd door Dirickteur op 18-04-2005 00:20 ]


  • ludo
  • Registratie: Oktober 2000
  • Laatst online: 01-03 18:17
Hmm Delphi is niet mijn favoriete werkgebied ;) maar volgens mij komt het doordat je probeert van een INSERT query reultsets op te halen (en die zijn er logischerwijs niet). Ik denk dat je i.p.v. Open, ExecSQL o.i.d. moet proberen.

[ Voor 9% gewijzigd door ludo op 17-04-2005 21:26 ]


  • LordLarry
  • Registratie: Juli 2001
  • Niet online

LordLarry

Aut disce aut discede

Ludo, je hebt helemaal gelijk.

We adore chaos because we like to restore order - M.C. Escher


  • whoami
  • Registratie: December 2000
  • Laatst online: 01:02
Je moet idd ExecSQL uitvoeren om een INSERT, UPDATE of DELETE query uit te voeren.

Echter, dan nog denk ik dat die query niet zal lukken, omdat je die backticks gebruikt, en volgens mij is dit iets specifieks voor MySQL.
Jij gebruikt Access, dus, ofwel laat je die backticks weg, ofwel vervang je ze door blok-haken ([ ] ).
code:
1
SQL.Text = 'INSERT INTO [tabel] ([naam], [nummer]) VALUES ("hoi", 3)';

Ik ga er hier wel van uit dat het data-type van de column 'nummer', numeriek is.

[ Voor 5% gewijzigd door whoami op 17-04-2005 21:55 ]

https://fgheysels.github.io/


  • Dirickteur
  • Registratie: Januari 2003
  • Laatst online: 14:58
Die 'backticks' maken niet uit, hij herkent namelijk wel gewoon de kolommen. Nummer is overigens de titel van een liedje en de naam is de artiest. Misschien niet zo handig gekozen, maar wel even snel gedaan...

En die ExecSQL werkt.. super en allemaal bedankt voor het meedenken.

  • Dirickteur
  • Registratie: Januari 2003
  • Laatst online: 14:58
Zoals ook al in de TS ge-edit:
Hoe krijg ik nu data gefetched in bijvoorbeeld een ListBox?

[ Voor 3% gewijzigd door Dirickteur op 18-04-2005 00:21 ]


  • NMe
  • Registratie: Februari 2004
  • Laatst online: 15-04 22:07

NMe

Quia Ego Sic Dico.

Door gewoon door je recordset heen te loopen en vervolgens alle elementen een voor een in een listbox te zetten? Wat heb je zelf al geprobeerd? En wat heb je gevonden? Waarom voldeed dat niet?

Beetje meer eigen inzet mag wel. :)

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


  • LordLarry
  • Registratie: Juli 2001
  • Niet online

LordLarry

Aut disce aut discede

En als je een TDataSource en een TDBGrid gebruikt hoef je niet eens meer code daarvoor te schrijven.

We adore chaos because we like to restore order - M.C. Escher

Pagina: 1