Delphi-PRAXiS
Seite 3 von 5     123 45      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi SQL error : type mismatch (https://www.delphipraxis.net/151993-sql-error-type-mismatch.html)

alex-91 13. Jun 2010 15:35

AW: SQL error : type mismatch
 
hmm hab jz noch die raumbezeichnung dazu genommen und soweit klappts auch noch :)
doch dann kommt der gerätetyp und die fehlermeldung ist wieder da :(

Delphi-Quellcode:
nummer:=Edit1.Text;
 Query1.Active:=false;
 Query1.SQL.Clear;
 Query1.SQL.Add('SELECT Inventarnummern.Inventarnummer, Raume.Raumnummer, Raume.Raumbezeichnung, Geratetyp.Typ FROM Inventarnummern, Raume, Geratetyp WHERE Inventarnummer = "'+(nummer)+'" AND Raume.ID = Inventarnummern.ID_Raum AND Geratetyp.ID = Inventarnummern.Geratetyp');
 Query1.Active:=true;
lg

haentschman 13. Jun 2010 15:39

AW: SQL error : type mismatch
 
:gruebel: warum nutzt du immer noch nicht Parameter wie vorgeschlagen ? Gibt´s bei dir Copy / Paste nicht ? :zwinker:

omata 13. Jun 2010 15:40

AW: SQL error : type mismatch
 
Versuch es mal so...
SQL-Code:
SELECT Inventarnummern.Inventarnummer, Raume.Raumnummer, Raume.Raumbezeichnung, Geratetyp.Typ
FROM Inventarnummern, Raume, Geratetyp
WHERE Inventarnummer = ''' + nummer + '' '
  AND Raume.ID = Inventarnummern.ID_Raum
  AND Geratetyp.ID = Inventarnummern.Geratetyp
Anführungszeichen = Doppelte Hochkommatas (innerhalb eines Delphistrings) sonst natürlich Anführungszeichen = Hochkommata

alex-91 13. Jun 2010 16:09

AW: SQL error : type mismatch
 
Zitat:

Zitat von haentschman (Beitrag 1028542)
:gruebel: warum nutzt du immer noch nicht Parameter wie vorgeschlagen ? Gibt´s bei dir Copy / Paste nicht ? :zwinker:

habs probiert mit strg+C --> strg+V, hat leider auch keine funktion zur folge gehabt, zudem kenn ich mich mit dem nicht aus.

habs jz umgeändert auf:

Delphi-Quellcode:
 nummer:=Edit1.Text;
 Query1.Active:=false;
 Query1.SQL.Clear;
 Query1.SQL.Add('SELECT Inventarnummern.Inventarnummer, Raume.Raumnummer, Raume.Raumbezeichnung, Geratetyp.Typ FROM Inventarnummern, Raume, Geratetyp WHERE Inventarnummer = '' ' + (nummer) + ' '' AND Raume.ID = Inventarnummern.ID_Raum AND Geratetyp.ID = Inventarnummern.Geratetyp');
 Query1.Active:=true;
leider kommt jz : missing operator or semicolon .. sieht werd das missing-teil ?

mkinzler 13. Jun 2010 16:13

AW: SQL error : type mismatch
 
Delphi-Quellcode:
Query1.SQL.Text := 'SELECT Inventarnummern.Inventarnummer, Raume.Raumnummer, Raume.Raumbezeichnung, Geratetyp.Typ FROM Inventarnummern, Raume, Geratetyp WHERE Inventarnummer = :nummer AND Raume.ID = Inventarnummern.ID_Raum AND Geratetyp.ID = Inventarnummern.Geratetyp;';
Query.ParamByName('nummer').Value = Nummer;

alex-91 13. Jun 2010 16:17

AW: SQL error : type mismatch
 
Zitat:

Zitat von mkinzler (Beitrag 1028553)
Delphi-Quellcode:
Query1.SQL.Text := 'SELECT Inventarnummern.Inventarnummer, Raume.Raumnummer, Raume.Raumbezeichnung, Geratetyp.Typ FROM Inventarnummern, Raume, Geratetyp WHERE Inventarnummer = :nummer AND Raume.ID = Inventarnummern.ID_Raum AND Geratetyp.ID = Inventarnummern.Geratetyp;';
Query.ParamByName('nummer').Value = Nummer;

parameter zeugs bringt mir leider garnichts.
is mein maturaprojekt (matura = abi), das habn wir so nicht gelernt ich könnts nicht mal erklären ...
trotzdem danke

omata 13. Jun 2010 16:23

AW: SQL error : type mismatch
 
Delphi-Quellcode:
Query1.SQL.Add(
  'SELECT Inventarnummern.Inventarnummer,'#13 +
  '      Raume.Raumnummer, Raume.Raumbezeichnung,'#13 +
  '      Geratetyp.Typ'#13 +
  'FROM Inventarnummern, Raume, Geratetyp'#13 +
  'WHERE Inventarnummer = ''' + nummer + ''''#13 +
  ' AND Raume.ID = Inventarnummern.ID_Raum'#13 +
  ' AND Geratetyp.ID = Inventarnummern.Geratetyp'
);

haentschman 13. Jun 2010 17:29

AW: SQL error : type mismatch
 
Zitat:

parameter zeugs bringt mir leider garnichts.
is mein maturaprojekt (matura = abi), das habn wir so nicht gelernt ich könnts nicht mal erklären ...
um es mal einfach auszudrücken:
- ein Parameter wird im SQL String mit : eingeleitet
- der Name des Parameters ist frei wählbar (reservierte Worte sollte man trotzdem vermeiden)
- der Wert des Parameters wird seperat übertragen (Stichwort SQL Injection verhindern)

Vorteile:
- der ganze Hochkomma Kram fällt weg
- keine SQL Injection
- übersichtlicher im Quelltext

...und noch mehr :zwinker:

PS:
Zitat:

parameter zeugs bringt mir leider garnichts.
...was bedeutet das genau ?:gruebel:

alex-91 13. Jun 2010 17:52

AW: SQL error : type mismatch
 
Zitat:

Zitat von omata (Beitrag 1028557)
Delphi-Quellcode:
Query1.SQL.Add(
  'SELECT Inventarnummern.Inventarnummer,'#13 +
  '      Raume.Raumnummer, Raume.Raumbezeichnung,'#13 +
  '      Geratetyp.Typ'#13 +
  'FROM Inventarnummern, Raume, Geratetyp'#13 +
  'WHERE Inventarnummer = ''' + nummer + ''''#13 +
  ' AND Raume.ID = Inventarnummern.ID_Raum'#13 +
  ' AND Geratetyp.ID = Inventarnummern.Geratetyp'
);

was heißt das " #13" ?? lg

alex-91 13. Jun 2010 17:55

AW: SQL error : type mismatch
 
PS:
Zitat:

parameter zeugs bringt mir leider garnichts.
...was bedeutet das genau ?:gruebel:[/QUOTE]


das bedeutet dass ich mit der parameterform/parameterdarstellung nicht viel anfangen kann, weil ich es nicht verstehe bzw. nie gelernt habe. somit schlage ich daraus keinen vorteil.

war das vorhin schon zu österreichisch oder wie ? ;)

lg


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:53 Uhr.
Seite 3 von 5     123 45      

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz