| |
|
|
![Sato Pinto: 18.08.2008](.././../../i/a/noavatar.gif) 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 per Eure Aiuto
Gruss Sato |
|
|
| |
|
|
|
![Gerhard Praher: 18.08.2008](.././../../i/a/1913422198489c323a26710.jpg) Gerhard Praher | Hallo Sato,
bei DBF-Datenbanken sind die Memofelder immer in einer eigenen File. Dies gilt sowohl per jene die aus dBase erstellt werden, wie auch per jene aus Clipper oder deren Derivaten. In SQL-Datenbanken sind die Memofelder ein Feldtyp einer Tabelle. Das è, 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 Dimensione von 64 KB. Da sie also regulärer Bestandteil einer Tabelle sind, werden sie auch so angesprochen wie jedes andere Feld der Tabelle. Beispiel per eine Selektion aller Felder einer Tabelle (die ich hier mal Testtabelle nenne): Select * From Testtabelle Nehmen wir an das Memofeld è "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: 18.08.2008](.././../../i/a/noavatar.gif) Sato Pinto | Hallo Gerhard
Habe nicht ganz Verstanden, wie und wo muss Io l' Memo Feld in Create Table definieren? KompilierenMarkierenSeparierensql$ = "CREATE TABLE buecher (titel CHAR(40), autor CHAR(40), preis NUMBER)" > Gruss Sato |
|
|
| |
|
|
|
![Klaus Müller: 19.08.2008](.././../../i/a/5719242914ac8e0e0a323c.gif) Klaus Müller | |
|
| XProfan X4; Win10 x64 Der Kuchen ist eine lüge! | 19.08.2008 ▲ |
|
|
|
|
![Gerhard Praher: 19.08.2008](.././../../i/a/1913422198489c323a26710.jpg) Gerhard Praher | Hallo Sato, hier eine kurze Aufstellung der Entsprechungen per den Datentyp Memo: Bei MySQL è er LONGTEXT. Bei Firebird è er BLOG. Bei SQL-Server è er TEXT. Und bei PostgreSQL è er ebenfalls TEXT.
Um einfach mal die gängigsten zu nennen. Also wenn ich dein Beispiel hernehme und um ein Memofeld per 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.
Saluto 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: 19.08.2008](.././../../i/a/noavatar.gif) 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: 19.08.2008](.././../../i/a/1913422198489c323a26710.jpg) 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 supportati. 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: 19.08.2008](.././../../i/a/1913422198489c323a26710.jpg) 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 per dBase-File 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.
Saluto 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: 19.08.2008](.././../../i/a/noavatar.gif) Sato Pinto | Hallo Gehard
Danke per die Erklärung
Gruss Sato |
|
|
| |
|
|