Entwickler-Ecke

Datenbanken - Tabelle erzeugen !


Jagg - Mi 17.07.02 15:54
Titel: Tabelle erzeugen !
Hallo,ich weiss nicht ob ich hier in der richtigen Sparte bin,aber ich versuch es trotzdem !
Also,mein Code !


Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
var
  NewString: string;
  ClickedOK: Boolean;
begin
  Table1.Close;
  NewString := '';
  Table1.Tablename := NewString;
  ClickedOK := InputQuery('Datenbank','Name der neuen Datenbank',NewString);
  if ClickedOK then
  begin
  with Table1 do begin
  Active := False;
  DatabaseName := 'C:\Nguyen\Sonstige\Mailing Service\Datenbank';
  TableType := ttDBase;
  TableName := Newstring;
  with FieldDefs do begin
    Clear;
      with AddFieldDef do begin
        Name := 'E-Mail Adressen';
        DataType := ftString;
        Size := 6;
      end;
    end;
  with IndexDefs do begin
    Clear;
      with AddIndexDef do begin
        Name := 'Index';
        Fields := 'E-Mail Adressen';
      end;
    end;
  CreateTable;
   end;
  end;
  end;


Wenn ich jetzt die Tabelle in dem Ordner,wo ich gesoeichert habe aufrufe sag er keine Tabelle !
Warum ???

Jagg !


Klabautermann - Mi 17.07.02 16:59

Ohne das überprüft zu haben, wüde ich sagen deine Tabelle liegt im Ordner C:\Nguyen\Sonstige\Mailing Service\ und heißt Datenbank*.

Gruß
Klabautermann


MrSpock - Do 18.07.02 20:51

Hallo Jagg,

du schreibst:

Zitat:
Wenn ich jetzt die Tabelle in dem Ordner,wo ich gesoeichert habe aufrufe sag er keine Tabelle !


Wie meinst du das? Gibt es eine Datei im Verzeichnis C:\Nguyen\Sonstige\Mailing Service\Datenbank, die so heißt, wie du in der Input Abfrage angegeben hast? Wann und wie erscheint die Meldung, es gebe keine Tabelle?


Jagg - Fr 19.07.02 09:22

Ich habe den Code hier aus der Hilfe von CREATETABLE !


Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
with Table1 do begin
  Active := False;
  DatabaseName := 'C:\Nguyen\Sonstige\Mailing Service\Datenbank\';
  TableType := ttDBase;
  TableName := Edit1.Text;
  with FieldDefs do begin
    Clear;
      with AddFieldDef do begin
        Name := 'E-Mail';
        DataType := ftString;
        Size := 25;
      end;
    end;
  with IndexDefs do begin
    Clear;
      with AddIndexDef do begin
        Name := 'Index1';
        Fields := 'E-Mail';
        Options := [ixExpression];
      end;
    end;
  CreateTable;
  Active := True;
  end;
end;


Aber er erzeugt keine Tabelle ?


MrSpock - Sa 20.07.02 21:13

Hallo Jagg,

lass mal die Options bei der Erstellung des Indexes weg, dann wird die Tabelle korrekt erzeugt. Du musst außerdem in Edit1 einen Tabellennamen mit der Endung ".DBF" eintragen. Außerdem muß das Directory existieren, dass du als DataBaseName benutzt. (Evtl kannst du ForceDirectories benutzen).


Genesis1974 - Mo 22.07.02 13:10
Titel: Probier mal ...
... folgendes:

Als DataBaseName wird normalerweise der Alias Name verwendet,
und bei TableName der Dateiname.

Bei Paradox usw. müßte DataBaseName := 'DefaultDD'; genügen.

Hoffe ich konnte helfen.


Genesis1974 - Di 23.07.02 20:42
Titel: ... sorry hab mich vertan ...
Hab nochmal nach geschlagen, so müßte es gehen:
DataBaseName(das Verzeichnis) muß existieren! Habs mit einem anderen Pfad laufen lassen und er hat mir die Datenbank richtig angelegt.

Source:

Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
var
  NewString: string;
  ClickedOK: Boolean;
begin
  NewString := '';
  with Table1 do begin
    Active    := false;
    TableName := NewString;
    ClickedOK := InputQuery('Datenbank',
                            'Name der neuen Datenbank',
                            NewString);
    if ClickedOK then begin
      Active := False;
      DataBaseName := 'C:\Nguyen\Sonstige\Mailing Service\Datenbank';
      TableType := ttDBase;
      TableName := Newstring;
      with FieldDefs do begin
        Clear;
        with AddFieldDef do begin
          Name := 'E-Mail Adressen';
          DataType := ftString;
          Size := 6;
        end; // with AddFieldDef
      end; // with FieldDefs
    end; // If ClickedOK
    with IndexDefs do begin
      Clear;
      with AddIndexDef do begin
        Name := 'Index';
        Fields := 'E-Mail Adressen';
      end; // with AddIndexDef
    end; // with IndexDefs;
  CreateTable;
  Active := true;
  end; // with Table1
end;

Hoffe ich konnte helfen.
Ciau

Code-Tags hinzugefügt. Tino