Zum Inhalt springen

Parameter in SQL-Abfrage


MeisterB

Empfohlene Beiträge

Wie kann ich einen Parameter an eine SQL-Abfrage unter C++ übergeben?

Hab versucht vorher ne interger Varibale zu erstellen und dieser dann einen Wert zu geben. Aber beim versuch diese Variable in der Abfrage zu verwenden erhalten ich bei der Ausführung diese Meldung:

"Für mindestens einen erforderlichen Parameter wurde kein Wert angegeben."

Jemand ne Idee wie ich diesen Parameter(sprich meine Variable) mit einem Wert an die Abfrage übergeben kann?

Link zu diesem Kommentar
Auf anderen Seiten teilen

hab was probiert:

long nummer=472;

OleDbDataAdapter* daTitles = new OleDbDataAdapter("SELECT Kunden.* FROM AV INNER JOIN Kunden ON [AV].[KD-Nr]=[Kunden].[Kd-Nr] WHERE [AV].[seriennummer]='%nummer%'", DBVerbindung);

Fehler:

Datentypen in Kriterienausdruck unverträglich

Seriennummer ist vom Typ long int also was soll daran falsch sein?

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hab rausgefunden das die Abfrage nicht den Fehler verursacht sondern die Zeile die ich mit XXXX gekennzeichnet habe:

//Abfrage von Oben

DataSet* dsTitles=new DataSet();

xxxx daTitles->Fill(dsTitles);

dataGrid1->DataSource=dsTitles->Tables->Item[0]->DefaultView;

ne Idee warum das den Fehler verursacht?

Link zu diesem Kommentar
Auf anderen Seiten teilen

Moin Meister,

Ich benutze keinen Server sondern greife direkt auf ne Accessdatenbank zu!

Das ist hier das Datenbankforum - da ist es wohl normal, dass ich nach dem Datenbankserver frage... <g>

Was das andere angeht... ich nehme an, "daTitles" ist ein Array. Das musst Du unter C++, wenn ich das noch richtig weiss, ja auch erstmal deklarieren.

Der Fehlermeldung nach hast Du das wohl nicht ganz richtig getan, da eine Spalte wohl den falschen Datentyp hat... eventuell auch einfach in der falschen Reihenfolge definiert, oder sowas.

Gruss,

der Onkel

Link zu diesem Kommentar
Auf anderen Seiten teilen

...äh.. mich beschleicht da was... es geht da ja um winzigweich...

Beim MS-SQL-Server werden Variablen mit "?" übergeben. Ist es vielleicht auch hier der Fall?

Kurz gesagt:

OleDbDataAdapter* daTitles = new OleDbDataAdapter("SELECT Kunden.* FROM AV INNER JOIN Kunden ON [AV].[KD-Nr]=[Kunden].[Kd-Nr] WHERE [AV].[seriennummer]=?nummer", DBVerbindung);

Du musst halt nur dafür sorgen, dass die entsprechende Variable auch existiert, aber das tut sie laut dem Codeschnipsel ja.

Probier das mal... sonst bin ich mit meinem Latein vorerst auch am Ende.

Gruss,

der Onkel

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...