PDA

Vollständige Version anzeigen : Abfrage wie in Access mit VC++


Nemesis
01.08.2003, 16:36
In Access war es kein Problem eine Tabelle nach einem bestimmten Eintrag zu durchsuchen. Da kam ja für den Fehlenden Parameter in der SQL-Abfrage immer ne Box die den Benutzer dazu aufforderte den gewünschten Begriff einzugeben. Da ich nun aber unter VC++ auf diese Datenbank zugreife gibt es ein großes Problem, denn hier erscheint diese Abfragebox nicht. wie kann ich also diese Abfrage durchführen:

OleDbDataAdapter* daTitles = new OleDbDataAdapter("SELECT Kunden.* FROM Tabelle1 WHERE ((([Tabelle1].[Seriennummer])=[PARAMETER]))", DBVerbindung);

Sprich: wie bekomme ich in PARAMETER den zu suchenden Wert rein?

Khelben
02.08.2003, 11:22
Moin moin,

bastel dir ein Formular und lies den Wert einer Textbox aus, speicher den Wert in einer Variablen und füge den Variablennamen in deinen Code ein.
Hab nur VB.net, aber das dürfte ja ähnlich sein...

'Variable deklarieren:
Dim wert as String

'Wert zuweisen:
wert = text1.Text


OleDbDataAdapter* daTitles = new OleDbDataAdapter("SELECT Kunden.* FROM Tabelle1 WHERE ((([Tabelle1].[Seriennummer])=[wert]))", DBVerbindung);

Sollte so doch ganz einfach funktionieren, oder ist VC da komplizierter gestrickt?

Greetz

Markus

Nemesis
02.08.2003, 19:53
Leider scheint das bei VC++ nicht so einfach zu sein denn ich erhalte dann die Fehlermeldung:

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

Nemesis
03.08.2003, 16:12
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?

Nemesis
04.08.2003, 09:08
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?