| |
|
|
Sato Pinto | Hallo Xprofaner
In meinen alten Programm arbeite ich mit Profan dbf dateien und das funktioniert gut doch jetzt schreibe ich das Programm neu und möchte endlich alles mit SQL machen und habe schon den ersten Problem mit den Memo Feld der in SQL wahrscheinlich nicht existiert.
im alten programm mache ich das so, um das Memo des Datensatz in die Profan Listbox darzustellen KompilierenMarkierenSeparieren Wie wird das in SQL gemacht?
Danke für Eure Hilfe
Gruss Sato |
|
|
| |
|
|
|
Gerhard Praher | Hallo Sato,
bei DBF-Datenbanken sind die Memofelder immer in einer eigenen Datei. Dies gilt sowohl für jene die aus dBase erstellt werden, wie auch für jene aus Clipper oder deren Derivaten. In SQL-Datenbanken sind die Memofelder ein Feldtyp einer Tabelle. Das heißt, dass sich ein Memofeld von einem Textfeld, oder nummerischen Feld (als Beispiele gedacht) eben nur durch den Feldtyp "Memo" unterscheiden. Meistens haben diese Felder (wie zB. bei MS-Access) eine Größe von 64 KB. Da sie also regulärer Bestandteil einer Tabelle sind, werden sie auch so angesprochen wie jedes andere Feld der Tabelle. Beispiel für eine Selektion aller Felder einer Tabelle (die ich hier mal Testtabelle nenne): Select * From Testtabelle Nehmen wir an das Memofeld heißt "MemoFld" und du willst nur dieses eine Feld selektieren, dann lautet der SQL-Befehl: Select MemoFld From Testtabelle
Ich hoffe, das hilft dir ein bisschen weiter. Gerhard |
|
|
| Windows XP Pro, SP3 Jetzt: XProfan 11 Was ich liebe sind 3 "F": meine Familie, meine Firma, meine Freizeit. | 18.08.2008 ▲ |
|
|
|
|
Sato Pinto | Hallo Gerhard
Habe nicht ganz Verstanden, wie und wo muss ich den Memo Feld in Create Table definieren? KompilierenMarkierenSeparierensql$ = "CREATE TABLE buecher (titel CHAR(40), autor CHAR(40), preis NUMBER)"
Gruss Sato |
|
|
| |
|
|
|
Thomas Zielinski | |
|
| XProfan X4; Win10 x64 Der Kuchen ist eine lüge! | 19.08.2008 ▲ |
|
|
|
|
Gerhard Praher | Hallo Sato, hier eine kurze Aufstellung der Entsprechungen für den Datentyp Memo: Bei MySQL heißt er LONGTEXT. Bei Firebird heißt er BLOG. Bei SQL-Server heißt er TEXT. Und bei PostgreSQL heißt er ebenfalls TEXT.
Um einfach mal die gängigsten zu nennen. Also wenn ich dein Beispiel hernehme und um ein Memofeld für Notizen erweitere sieht das so aus: KompilierenMarkierenSeparierensql$ = "CREATE TABLE buecher (titel CHAR(40), autor CHAR(40), preis NUMBER, notizen TEXT)"
Oder eben LONGTEXT oder BLOG - je nachdem welche SQL-Datenbank du verwendest.
Gruß Gerhard |
|
|
| Windows XP Pro, SP3 Jetzt: XProfan 11 Was ich liebe sind 3 "F": meine Familie, meine Firma, meine Freizeit. | 19.08.2008 ▲ |
|
|
|
|
Sato Pinto | Hallo
Habe die Varianten versucht, alle Fehlerhaft, KompilierenMarkierenSeparierenDB& =SQLInit("Driver={Microsoft dBase Driver (*.dbf)};DBQ="+$ProgDir)
IFnot DB& > 0
@MessageBox("Fehler bei initializierung des driver OBDC.","Fehler OBDC",64)
Return
endif
@MessageBox("Inicialização do driver OBDC.","OK",64)
waitinput
sql$ = "CREATE TABLE buecher (titel CHAR(40), autor CHAR(40), preis NUMBER, notas LONGTEXT)"
sql$ = "CREATE TABLE buecher (titel CHAR(40), autor CHAR(40), preis NUMBER, notizen TEXT)"
sql$ = "CREATE TABLE buecher (titel CHAR(40), autor CHAR(40), preis NUMBER, notizen LONGTEXT)"
sql$ = "CREATE TABLE buecher (titel CHAR(40), autor CHAR(40), preis NUMBER, notizen BLOG)"
SQLExec sql$,0
Noch Ideen?
Gruss Sato |
|
|
| |
|
|
|
Gerhard Praher | Hallo Sato,
also mir ist nicht bekannt, daß dBase eine SQL Datenbank ist. Also werden in und mit diesem Treiben SQL-Statements nicht unterstützt. Die einzige dBase-Version, die mir gerade einfällt, die das kann ist: dBase IV SQL. Ich würde mal sagen: Da liegt der grundsätzliche Fehler.
Gerhard |
|
|
| Windows XP Pro, SP3 Jetzt: XProfan 11 Was ich liebe sind 3 "F": meine Familie, meine Firma, meine Freizeit. | 19.08.2008 ▲ |
|
|
|
|
Gerhard Praher | Nachdem du geschrieben hast, daß du alles in SQL machen willst, bin ich nicht davon ausgegangen, daß es wieder DBF ist. Die Verwendung von ODBC für dBase-Dateien macht diese noch lange nicht zu einer SQL-Datenbank.
Bitte überdenke das grundsätzlich. Die einfachste Form einer SQL-Datenbank ist MS-Access (.MDB). Damit kannst du, ähnlich wie bei dBase, die Datenbankdatei auf dem lokalen Rechner in einem bestimmten Ordner halten. Bei allen anderen (SQL-Servern) ist die entsprechende Serversoftware erforderlich.
Wollte das nur ergänzend anmerken.
Gruß Gerhard |
|
|
| Windows XP Pro, SP3 Jetzt: XProfan 11 Was ich liebe sind 3 "F": meine Familie, meine Firma, meine Freizeit. | 19.08.2008 ▲ |
|
|
|
|
Sato Pinto | Hallo Gehard
Danke für die Erklärung
Gruss Sato |
|
|
| |
|
|