Mailinglisten-Archive |
hallo!
> Mit C++ hat Dein Problem weniger zu tun, Du mußt dir einfach mal die
> Konventionen für mySQL-Queries reinziehen. Welche Feldtypen
> numerisch bedient werden, welche character bedient werden und so.
habe ich leider nicht ganz verstanden ;-)
über das makro:
sql_create_5( stock, 1, 5,
string, item,
int, num,
double, weight,
double, price,
Date, sdate)
lege ich doch ganz klar die richtigen "konventionen" fest, oder?
und wenn ich nun über
row.set("Pommes", 111, 0.5, 1.99, "2001-11-20");
den neuen datensatz erzeugen ist es doch nun nicht mehr in meiner hand.
ich kann natürlich auch den datensatz mit:
row.set("'Pommes'", 111, 0.5, 1.99, "'2001-11-20'");
erzeugen. hier kann ich ja auch das "problem" umgehen,
nur bei einem update mit:
...
stock row2 = row;
row.item = "Hotdog Buns"; // now change item
query.update(row2, row);
...
(beispiel 4.5.3 Modifying Data )
wird intern dann der inkorrekte sql-befehl (strings und datum ohne "'")
zusammen gestellt. :-)
wer kennt das problem und weiss abhilfe?
danke jörg
>
> ciao!
> Kai
>
> > hai norbert :-)
> >
> > > > bis zum auslesen von tabellen und informationen bin ich
> gekommen,
> > > > aber ändern, hinzufügen da fehlt mir leider noch etwas ...
> > > keine Ahnung wie Du was machst...
> >
> > ein konkretes beispiel ist ja das "adding data" aus 4.5.2:
> > das habe ich komplett in vc++ übernommen und auch kompelieren
> > können:
> > /////////////////////////////////////////////////////////////////
> > #include <iostream>
> > #include <vector>
> > #include <sqlplus.hh>
> > #include <custom.hh>
> > #include "util.hh"
> >
> > sql_create_5( stock, 1, 5,
> > string, item,
> > int, num,
> > double, weight,
> > double, price,
> > Date, sdate)
> >
> > int main()
> >
> > try
> > {
> > Connection con(use_exceptions);
> > con.connect("mysql_cpp_data");
> > Query query = con.query();
> >
> > // create an empty stock object
> > stock row;
> >
> > // eintrag setzen
> > row.set("Pommes", 111, 0.5, 1.99, "2001-11-20");
> >
> > // form the query to insert the row
> > query.insert(row);
> >
> > // the table name is the name of the struct by default
> > // show the query about to be executed
> > cout << "Query : " << query.preview() << endl;
> > // execute a query that does not return a result set
> > query.execute();
> >
> > print_stock_table(query);
> > // now print the new table;
> >
> > }
> >
> > catch (BadQuery er)
> >
> > cerr << "Error: " << er.error << endl;
> > return -1;
> > }
> >
> > catch (BadConversion er)
> >
> > cerr << "Error: Tried to convert \"" << er.data
> << "\" to a \""
> > << er.type_name << "\"." << endl;
> > return -1;
> > }
> > }
> > /////////////////////////////////////////////////////////////////
> >
> > mit folgendem ergebnis:
> >
> > Query : INSERT INTO stock (item,num,weight,price,sdate)
> VALUES (Pommes,111
> > .99,2001-11-20)
> > Error: Unknown column 'Pommes' in 'field list'
> >
> > ok nun habe ich das set entsprechen abgeändert:
> > ...
> > row.set("'Pommes'", 111, 0.5, 1.99, "'2001-11-20'");
> > ...
> >
> > mit dem ergebnis:
> >
> > Query : INSERT INTO stock (item,num,weight,price,sdate) VALUES
> > ('Pommes',111,0.5
> > ,1.99,0000-01-11)
> > Query:
> > Records Found: 5
> >
> > Item Num Weight Price Date
> >
> > Hamburger Buns 56 1.25 1.1 1998-04-26
> > Hotdogs' Buns 65 1.1 1.1 1998-04-23
> > Dinner Roles 75 0.95 0.97 1998-05-25
> > White Bread 87 1.5 1.75 1998-09-04
> > Pommes 111 0.5 1.99 0000-00-00
> >
> > wunderbar - bis auf das datum!
> >
> > wenn ich nun das makro ändere:
> >
> > sql_create_5( stock, 1, 5,
> > string, item,
> > int, num,
> > double, weight,
> > double, price,
> > string, sdate) // auf string
> geändert !!!
> >
> > klappt es!
> >
> > Query : INSERT INTO stock (item,num,weight,price,sdate) VALUES
> > ('Pommes',111,0.5
> > ,1.99,'2001-11-11')
> > Query:
> > Records Found: 5
> >
> > Item Num Weight Price Date
> >
> > Hamburger Buns 56 1.25 1.1 1998-04-26
> > Hotdogs' Buns 65 1.1 1.1 1998-04-23
> > Dinner Roles 75 0.95 0.97 1998-05-25
> > White Bread 87 1.5 1.75 1998-09-04
> > Pommes 111 0.5 1.99 2001-11-11
> >
> > klasse!
> >
> > aber wie gesagt, das kostet alles wahnsinnig viel zeit ...
> > und ich möchte nicht wissen was da noch so alles kommt ...
> >
> > deshalb noch mal eine bitte an alle:
> >
> >
> > WER HAT BEISPIELE FÜR VC++ 6.0!!!!! :-)))))))))))
> >
> >
> > > Wenn bei mir der Connect klappt, und ich ein
> SQL-Statement absetzen
> > > kann und darauf eine verwertbare Antwort bekomme, bin ich
> happy und
> > > zufrieden. Mehr muss IMHO nicht sein, bei einem SQL-RDBMS...
> >
> > jau, das mit den sql kommandos klappt ja auch wunderbar :-)
> > (nur für grosse applikation auf dauer doch sehr mühsam ;-))
> >
> > bis dahin erstmal vielen dank!
> >
> > gruss jörg
---
!!NEU!!
Fragen und Antworten zu MySQL und dieser Liste unter
-->> http://www.4t2.com/mysql
php::bar PHP Wiki - Listenarchive