AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi CreateTable / Felddefinitionen fehlen
Thema durchsuchen
Ansicht
Themen-Optionen

CreateTable / Felddefinitionen fehlen

Ein Thema von schmiddi · begonnen am 24. Sep 2003 · letzter Beitrag vom 25. Sep 2003
Antwort Antwort
schmiddi

Registriert seit: 24. Sep 2003
6 Beiträge
 
#1

CreateTable / Felddefinitionen fehlen

  Alt 24. Sep 2003, 15:34
Hallo,

erzeuge zur Laufzeit mit CreateTable (Delphi3, BDE 5,11, DBase) eine Datenbanktabelle. Auf manchen Rechnern jedoch werden die Felddefinitionen (Feldtyp (numeric), Feldlänge (16) und Nachkommastellen (2)) nicht erzeugt.
Hat jemand schon ähnliche Erfahrungen gemacht oder/und weiß, wodurch das passiert?
Wie gesagt, es läuft auf den meisten Rechnern rund, doch auf manchen eben nicht. Dabei scheint weder das Betriebssystem noch die Version der BDE eine Rolle zu spielen.

Danke und Gruß
Ralf
  Mit Zitat antworten Zitat
Benutzerbild von Memo
Memo

Registriert seit: 19. Aug 2003
509 Beiträge
 
Delphi 7 Enterprise
 
#2

Re: CreateTable / Felddefinitionen fehlen

  Alt 24. Sep 2003, 19:18
Zitat von schmiddi:
erzeuge zur Laufzeit mit CreateTable (Delphi3, BDE 5,11, DBase) eine Datenbanktabelle. Auf manchen Rechnern jedoch werden die Felddefinitionen (Feldtyp (numeric), Feldlänge (16) und Nachkommastellen (2)) nicht erzeugt.
Was wird stattdessen erzeugt? Gar nichts oder Fehler?

Zitat von schmiddi:
Wie gesagt, es läuft auf den meisten Rechnern rund, doch auf manchen eben nicht. Dabei scheint weder das Betriebssystem noch die Version der BDE eine Rolle zu spielen.
Schau doch mal nach den Einstellungen in der BDE: Konfiguration->System->Formate->Number. Evt. liefert es einen Anhaltspunkt.
Denn wenn es sonst geht und nur auf bestimmten Rechnern nicht
  Mit Zitat antworten Zitat
schmiddi

Registriert seit: 24. Sep 2003
6 Beiträge
 
#3

Re: CreateTable / Felddefinitionen fehlen

  Alt 24. Sep 2003, 20:09
Zitat:
Was wird stattdessen erzeugt? Gar nichts oder Fehler?
Das Feld wird erzeugt, allerdings ohne jegliche Definitionen. Also rein der Feldname wird angelegt. Eine Fehlermeldung kommt beim Erstellen laut Kunden nicht, aber beim Versuch die Tabelle zu öfnnen.


Zitat:
Schau doch mal nach den Einstellungen in der BDE: Konfiguration->System->Formate->Number. Evt. liefert es einen Anhaltspunkt.
Denn wenn es sonst geht und nur auf bestimmten Rechnern nicht
Leider taucht das Problem auf keinem meiner Testrechner auf, lediglich bei ein paar Anwendern, auf deren Rechner ich natürlich (leider) selbst keinen Zugriff habe. Dann werde ich das wohl mal von den Usern selbst überprüfen lassen. Obwohl die BDE dort immer neu installiert wurde und ich auf meinem Rechner an den von dir genannten Einstellungen auch schon mal "herumegschraubt" hatte, um einen Fehler zu provozieren. Aber egal was ich einstelle, bei mir werden die Tabellen stets exakt erstellt.

Danke jedenfalls erstmal
Gruß
Ralf
  Mit Zitat antworten Zitat
Benutzerbild von MrSpock
MrSpock
(Co-Admin)

Registriert seit: 7. Jun 2002
Ort: Owingen
5.865 Beiträge
 
Delphi 2010 Professional
 
#4

Re: CreateTable / Felddefinitionen fehlen

  Alt 24. Sep 2003, 20:59
Hallo Schmiddi,

zunächst einmal herzlich willkommen im Delphi-PRAXIS Forum.

Dieser Fehler hört sich wirklich ungewöhnlich an. Eine Felddefinition ohne Typ habe ich noch nie gesehen.

Vielleicht können weitere Infos einen Anhalt liefern:

1. Nutzt du die TTable Komponente von Delphi oder irgendeine andere?
2. Wie erstellst du die Tabellendefinition?
3. Wird die Tabelle immer lokal oder im Netz erzeugt?
4. Überprüfst du, ob die Tabelle schon existiert, bevor du sie erzeugst?

Poste doch einfach mal ein Codeschnipsel dazu.
Albert
Live long and prosper


MrSpock
  Mit Zitat antworten Zitat
schmiddi

Registriert seit: 24. Sep 2003
6 Beiträge
 
#5

Re: CreateTable / Felddefinitionen fehlen

  Alt 24. Sep 2003, 21:14
Hier also die Prozedur, mit der ich die Tabellen erstelle.
Table_name wird beim Aufruf der Prozedur übergeben ...

Delphi-Quellcode:
procedure CreateNewTable(table_name:string);
var query1:tquery;
begin

     if fileexists (extractfiledir(Application.ExeName)+'\Daten\'+table_name) then
     //If Application.MessageBox(pchar('Beim Versuch die Artikeltabelle "' +table_name+'" zu erstellen ist ein Fehler aufgetreten.'+#10+'Die Datei ist bereits vorhanden und kann somit nicht neu erstellt werden.'), 'Fehler', MB_OK+MB_ICONEXCLAMATION+MB_DEFBUTTON1+MB_APPLMODAL) = ID_OK Then
     exit;

     try
     query1:=tquery.create(application.MainForm);
     query1.Close;
     query1.SQL.Clear;
     query1.SQL.add('CREATE TABLE "'+ (extractfiledir(Application.ExeName)+'\Daten\' +table_name)+'"'+
                    '(ARTNR CHAR(20),'+
                    ' BEZEICHN CHAR(60),'+
                    ' BEGINN DATE,'+
                    ' NAME CHAR(50),'+
                    ' STRASSE CHAR(50),'+
                    ' ORT CHAR(50),'+
                    ' EK NUMERIC(16,2),'+ [b][color=#f50000]<----[/color][/b]
                    ' VK NUMERIC(16,2),'+ [b][color=#f50000]<----[/color][/b]
                    ' INFOS Blob)');
     query1.Prepare;
     query1.ExecSQL;
[edit=MrSpock]Code Tags hinzugefügt Mfg, MrSpock[/edit]
  Mit Zitat antworten Zitat
Benutzerbild von MrSpock
MrSpock
(Co-Admin)

Registriert seit: 7. Jun 2002
Ort: Owingen
5.865 Beiträge
 
Delphi 2010 Professional
 
#6

Re: CreateTable / Felddefinitionen fehlen

  Alt 25. Sep 2003, 13:33
Hallo Schmiddi,

ich konnte das Verhalten nachvollziehen und hab eine Lösung gefunden. Ich weiß aber nicht, warum die BDE NUMERIC(x,y) und FLOAT(x,y) nicht mag. Sie mag aber DECIMAL(x,y). Das funktioniert und erzeugt Numerisch Felder (F in der Datenbankoberfläche).
Albert
Live long and prosper


MrSpock
  Mit Zitat antworten Zitat
schmiddi

Registriert seit: 24. Sep 2003
6 Beiträge
 
#7

Re: CreateTable / Felddefinitionen fehlen

  Alt 25. Sep 2003, 20:20
Zitat:
Hallo Schmiddi,

ich konnte das Verhalten nachvollziehen und hab eine Lösung gefunden. Ich weiß aber nicht, warum die BDE NUMERIC(x,y) und FLOAT(x,y) nicht mag. Sie mag aber DECIMAL(x,y). Das funktioniert und erzeugt Numerisch Felder (F in der Datenbankoberfläche).
Hallo Mr. Spock,

danke für den Tipp - werde es gleich mal versuchen.

Was ich finden konnte ist, dass der Wert bei "Level" in der BDE-Verwaltung eine Rolle spielt. Bei "7" tritt zum Beispiel das Problem auf. Mit Level "4" läuft's rund ...

Netter Gruß
Ralf
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:40 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz