phpbar.de logo

Mailinglisten-Archive

c++/win32 problem? - strings und datum ohne hochkomma!

c++/win32 problem? - strings und datum ohne hochkomma!

Joerg Geistmann mysql-de_(at)_lists.bttr.org
Thu, 22 Nov 2001 15:42:03 +0100


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