georg hat geschrieben:machen wir es doch mal an einem Beispiel klar:
JA ... jetzt ist es klar, Danke.
georg hat geschrieben:Ach, übrigens, es wäre immer gut, wenn Du angibst, auf welche Version von Hector's Klassen Du Dich beziehst ...
vermutlich die erste Version die Hector veröffentlicht hat.
ich habe nun den Source, mit WinDiff, verglichen und festgestellt das deine "lates" Version wohl die aktuellste ist.
georg hat geschrieben:Dann denke ich, dass Du zu sehr an alten Zöpfen hängst.
Die TipoField() Funktion wird m.E. nur dann verwendet, wenn Du eine Tabelle mittels einer DBF-Struktur erstellen willst. Damit bist Du aber auf die DBF-typischen Felder beschränkt, kannst also z.B. keine ENUMs oder TIMESTAMP Feldtypen verwenden.
JA ... ist klar.
Das ich die DBF importiere beschränkt mich zwar im ersten Schritt aber damit habe ich dann zunächst einmal bekannte Daten zum spielen.
georg hat geschrieben:Ich nie über einen CREATE TABLE mittels einer dbStruct nachgedacht, sondern direkt den CREATE TABLE eingesetzt, da dieser Befehl mir auch die Möglichkeit gibt, direkt PRIMARY KEY etc. zu definieren, also in einem Aufwasch.
für den PRIMARY KEY gibt es doch die Method CreatePrimaryKey( cTable, aCol ) in deiner Class MySQL
ich habe TEST5.PRG von Hector gesehen und mich gefragt warum er nicht o:CreateTable(cTable,aStruct,cType) verwendet hat
Code: Alles auswählen
// ? 'create table form Structure',
// oCon:CreateTable( cTable,aStruct,cType)
// type function type sql
? 'create table form Type Sql',
cSql := creatable()
if oCon:RealQuery( cSql ) == 0
msgbox('error Create')
endif
...
Static function creatable()
Local cInst
cInst = "CREATE TABLE IF NOT EXISTS `addressebook` ("
cInst += "`AKey` int(11) NOT NULL auto_increment, "
cInst += "`FName` varchar(15) NOT NULL default '', "
cInst += "`LName` varchar(15) NOT NULL default '', "
cInst += "`Address` varchar(25) NOT NULL default '', "
cInst += "`City` varchar(18) NOT NULL default '', "
cInst += "`State` varchar(2) NOT NULL default '', "
cInst += "`Zip` varchar(5) NOT NULL default '', "
cInst += "`Picture` longblob NULL default NULL, "
cInst += "PRIMARY KEY (`AKey`), "
cInst += "KEY `Name` (`FName`,`LName`), "
cInst += "KEY `City` (`City`), "
cInst += "KEY `State` (`State`) "
cInst += ") TYPE=MyISAM"
return cInst
sondern explizit "CREATE TABLE ..." ... hm
nun hat Hector in der Table ein FIELD Type "longblob" vorgesehen aber mit solchen Type kommt der Rest der Class (noch) nicht klar :-"
ich arbeite mich z.Z. durch euren MySQL Code und vergleiche es gegen meinen PostgreSQL Code um zu sehen wo Unterschiede auftreten die ich anpassen muss.
die Idee war nun die Änderungen für MySQL in PGU einzubauen so das ich wahlweise PostgreSQL oder MySQL ansprechen kann.
damit hätte ich dann zum Schluss die Bausteine die ich benötige um eine Xbase++ Application mit native MySQL und/oder PostgreSQL zu betreiben.