![]() |
Fehler in Create Table für dBase-Dbs
Hi Leute,
ich muss für ein Projekt zur Laufzeit dBase-Tabellen/Datenbanken/Dateien (wie immer man es nennen will) erstellen. Was nutze ich: Delphi7 Ente BDE 5.01 Das reine Erstellen klappt auch so ganz gut:
Delphi-Quellcode:
Die Tabelle wird so im richtigen Ordner unter den richtigen Namen abgespeichert.
q_vorgbuch.SQL.Text := 'CREATE TABLE ' + quotedstr(t_kalknr) + ' ('
+ 'laufnr numeric (4) ' + 'objektnr char (6), ' + 'posit char (11), ' + 'artiklnr char (9), ' + 'liefcode char (5), ' + 'menge numeric (7,2), ' + 'dertext char (16), ' + 'ekpreist numeric (9,2), ' + 'faktor numeric (6,2), ' + 'vkpreist numeric (9,2), ' + 'min_stck numeric (4,0), ' + 'mengeist numeric (7,2), ' + 'eu_min numeric (4,2), ' + 'eu_stck numeric (9,2), ' + 'gsmtprst numeric (9,2), ' + 'preispos numeric (9,2), ' + 'datum DATE) '; Es erscheint keine Fehlermeldung oder ähnliches. ABER: Wenn ich diese Tabelle dann mit DataMaker öffne, zeigt mir das Programm lauter Spalten an (ob es die richtige Anzahl ist hab ich nicht nachgezählt) von denen NUR die erste einen Namen hat, und zwar "DBE850DE0". Diese Feld ist dann vom Typ "Zeichen" mit einer Länge so zwischen 0 und 50 (ist irgendwie jedesmal anders). Alle anderen Felder haben keine Namen, sind nicht in der Feldverwaltung eingetragen und werden doch angezeigt. Wichtig zu erwähnen ist vielleicht noch, dass jede Spalte (egal welchen Typ ich angegeben habe)der ersten Zeile dieser neuen Tabelle komplett mit mit dem Wörtchen "Unbekannt" gefüllt ist. Ich hab mich schonmal schlau gemacht und im Netz gefunden, dass dieses "DBE850DE0" irgendwie der Name des DOS-Zeichensatzes von dBase sein soll. Nu die Frage (oh welch Überraschung ;): WAS MACH ICH FALSCH?? :wall: Gibt es vielleicht irgendwelche Einstellungen im BDE, die damit zusammenhängen könnten? Thx schon mal im Vorraus Martoeng EDIT: Nach Hinweis von Sharky erstmal den Quelltext korrigiert. (war eine Klammer falsch) Aber Problem leider noch nicht behoben :( |
Re: Fehler in Create Table für dBase-Dbs
Hai Martoeng,
ich habe jetzt kein Delphi zur Hand, aber muss diese Klammer (rot) nicht ganz am ende stehen?
Code:
q_vorgbuch.SQL.Text := 'CREATE TABLE ' + quotedstr(t_kalknr) + ' ('
+ 'laufnr numeric (4)[b][color=red])[/color][/b]'; . . + 'datum DATE) '; |
Re: Fehler in Create Table für dBase-Dbs
Hi,
oops, ja muss Sie, aber dass ist leider nicht der Fehler. Die ist da nur hingerutscht, weil ich zum Testen die DB mal auf eine Spalte reduziert habe (hatte den Rest auskommentiert.) Werde den Fehler im Zitat gleich berichtigen. Thx für den Tipp Martoeng |
Re: Fehler in Create Table für dBase-Dbs
Delphi-Quellcode:
// Falsch: Tabellenname wird in der folgenden Zeile in einfache Hochkommas
// eingeschlossen (mit QuotedStr) q_vorgbuch.SQL.Text := 'CREATE TABLE ' + quotedstr(t_kalknr) + ' (' // Richtig: Tabellenname wird in doppelte Anführungszeichen eingeschlossen // ABER: um jedem Ungemach aus dem Weg zu gehen, wird ein Tabellenname nach den gleichen Regeln // gebildet, nach denen auch gültige Pascal Bezeichner gebildet werden // also ein Buchstabe gefolgt von max. 31 beliebigen Zeichen aus ['a'..'z', 'A'..'Z', '0'..'9', '_'] // Bezeichner, die einem reservierte SQL-Wort entsprechen (z.B. SUM) müssen dabei unbedingt vermieden werden ! q_vorgbuch.SQL.Text := 'CREATE TABLE ' + t_kalknr + ' (' |
Re: Fehler in Create Table für dBase-Dbs
Hi shmia,
Hab deine Tipps beherzigt: - Ich habe den Tabellennamen in doppelte Anführungszeichen gesetzt -> trotzdem gleiches Problem. - Der Dateiname ist immer noch folgenden Muster aufgebaut: "K" + 5-stellige, fortlaufende Zahl. - Auch die Spaltenbezeichner habe ich nach bestem Wissen und Gewissen so gewählt, dass sie sich nicht mit SQl verhaken. Aber leider hat das alles nichts gebracht. Thx für deinen Tipp Martoeng |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:52 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz