Toon posts:

[C++] MySQL++ API gebruik van Query Templates

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hey,

Ik zit hier met een klein probleempje. Volgens mij is het zo bar eenvoudig, maar ik krijg het maar niet uit Google geperst...

Wat is de bedoeling:
Met C++ (compiler g++-3.0) en MySQL++ een query uitvoeren op de database dmv een Template.

Hoe ziet het er nu uit?
code:
1
2
3
4
5
6
7
8
9
Connection connect("db","host","user","pass");
/* ... */
cout << "drie\n";
Query queryGetName = connect.query();
queryGetName << "SELECT SrcOmschrijving FROM common_source_object WHERE Type='IP' AND SrcObj_Spec = %q0";
queryGetName.parse();

cout << queryGetName.preview("test") << endl;
return;


De output:
drie
SELECT SrcOmschrijving FROM common_source_object WHERE Type='IP' AND SrcObj_Spec = %q0

Nu is mijn vraag: Waarom werkt die %q0 niet? als ik er %0 van maak dan werkt het wel, maar wordt het niet gequote:
drie
SELECT SrcOmschrijving FROM common_source_object WHERE Type='IP' AND SrcObj_Spec = test

De manual
Juist, wat zegt de manual? Inderdaad, voorbeelden met %q0, %q1, enz.
q
This will quote and escape it using mysql_escape_string if it is a string or char *, or another Mysql specific types that needs to be quoted.

en:

select (%2:field1, %3:field2) from stock where %1:wheref = %q0:what
Het probleem is dat ik mijn string die ik als parameter meegeef wil voorzien van quotes en de quotes in de string moeten geescaped worden.

Is dit zo'n moeilijke opgaaf voor mysql++? Ik gebruik overigens versie mysql++ (1.7.9.sp4-2) (Debian libsqlplus-dev)

Verwijderd

Topicstarter
Heel dom :D ben na een bak koffie weer wakker. Het moet zijn:

%0q en niet %q0

%##(modifier)(:name)(: )

excuseer mij ;)

[edit]
Het staat dus fout in de manual hé:

An example template looks like this
select (%2:field1, %3:field2) from stock where %1:wheref = %q0:what

[ Voor 41% gewijzigd door Verwijderd op 08-04-2004 20:36 ]


  • Olaf van der Spek
  • Registratie: September 2000
  • Niet online
Verwijderd schreef op 08 april 2004 @ 20:34:
[edit]
Het staat dus fout in de manual hé:
Heb je de bug gereport?

Verwijderd

Topicstarter
OlafvdSpek schreef op 09 april 2004 @ 15:00:
[...]

Heb je de bug gereport?
Jep.