Tdbf , irgendwas mach ich falsch :D

Für Themen zu Datenbanken und Zugriff auf diese. Auch für Datenbankkomponenten.
Antworten
EugenE
Beiträge: 440
Registriert: So 10. Dez 2006, 14:59
OS, Lazarus, FPC: MacOSX Lion 10.7 (L 0.9.31 FPC 2.7.1)
CPU-Target: 64Bit
Kontaktdaten:

Tdbf , irgendwas mach ich falsch :D

Beitrag von EugenE »

Hallo,

ich bin recht neu in der Programm-Entwicklung^^ von daher nicht sonderlich viel ahnung von Delphi / Pascal

Also ich habe mir das Tutorial http://wiki.lazarus.freepascal.org/Laza ... utorial/de durchgelesen und wollte sofort es versuchen^^ , aber geht irgendwie ned

Hier mein Quellcode, das Compilieren geht aber wenn ich jez auf den Button klicke gibts nen fehler:

Code: Alles auswählen

unit Unit1; 
 
{$mode objfpc}{$H+}
 
interface
 
uses
  Classes, SysUtils, LResources, Forms, Controls, Graphics, Dialogs, Dbf,db, Dbf_Common,
  Buttons;
 
type
 
  { TForm1 }
 
  TForm1 = class(TForm)
    Button1: TButton;
    Dbf1: TDbf;
    procedure Button1Click(Sender: TObject);
  private
    { private declarations }
  public
    { public declarations }
  end;
 
var
  Form1: TForm1;
 
implementation
 
{ TForm1 }
 
procedure TForm1.Button1Click(Sender: TObject);
{ Wir benötigen die folgenden Units im USES Abschnitt:       }
{ uses Dbf, db, Dbf_Common                                   }
{ Dbf wird automatisch eingetragen wenn TDbf auf einem Formular abgelegt }
{ wird...   aber sie benötigen db für das DataSet Objekt und }
{ Dbf_Common für Dinge wie die Feldtyp Definitionen          }
begin
  Dbf1 := TDbf.Create(nil);
  try
    { benutzen sie relative Pfade zum "data" Verzeichnis}
    Dbf1.FilePath := 'C:\data\';
    { wir wollen Visual dBase VII kompatible Tabellen benutzen }
    Dbf1.TableLevel := 7;
    Dbf1.Exclusive := True;
    Dbf1.TableName := '
customers.dbf';
    With Dbf1.FieldDefs do begin
      Add('
Id', ftAutoInc, 0, True);
      Add('
Name', ftString, 80, True);
    End;
    Dbf1.CreateTable;
    Dbf1.Open;
    Dbf1.AddIndex('
custid', 'Id', [ixPrimary, ixUnique]);
    { fügt einen sekundären Index hinzu }
    Dbf1.AddIndex('
custname','Name', [ixCaseInsensitive]);
    Dbf1.Close;
  finally
    Dbf1.Free;
  end;
end;
 
initialization
  {$I unit1.lrs}
 
end.


Was habe ich falsch gemacht?

MfG,
Eugen

monta
Lazarusforum e. V.
Beiträge: 2809
Registriert: Sa 9. Sep 2006, 18:05
OS, Lazarus, FPC: Linux (L trunk FPC trunk)
CPU-Target: 64Bit
Wohnort: Dresden
Kontaktdaten:

Beitrag von monta »

Schreib mal bitte noch hin, was für ein Fehler kommt ;)

EugenE
Beiträge: 440
Registriert: So 10. Dez 2006, 14:59
OS, Lazarus, FPC: MacOSX Lion 10.7 (L 0.9.31 FPC 2.7.1)
CPU-Target: 64Bit
Kontaktdaten:

Beitrag von EugenE »

hm habe jez ma die .exe außerhalb des editors geöffnet , da steht jez das es die datei nicht gibt , im Editor kamen nur "#12343452342" unso^^ , hm wie erstelle ich jez so eine datei

und

ist es normal dass das compilieren so lange dauert?

monta
Lazarusforum e. V.
Beiträge: 2809
Registriert: Sa 9. Sep 2006, 18:05
OS, Lazarus, FPC: Linux (L trunk FPC trunk)
CPU-Target: 64Bit
Wohnort: Dresden
Kontaktdaten:

Beitrag von monta »

zu erstens: gibts dein \data\ verzeichnis schon, oder könnte es daran liegen?

zu 2.: ja, das kompilieren unter Windows dauert recht lange, da kam man nicht viel machen.
(unter Linux läufts allerdings schneller)

EugenE
Beiträge: 440
Registriert: So 10. Dez 2006, 14:59
OS, Lazarus, FPC: MacOSX Lion 10.7 (L 0.9.31 FPC 2.7.1)
CPU-Target: 64Bit
Kontaktdaten:

Beitrag von EugenE »

hm jop es was das mit dem ordner , ich dachte der den erstellen^^ , aber naja falsch gedacht :-D , kann man mit Lazarus auch auf Access Datenbanken zugreifen? wen ja wie? :-P

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Beitrag von Christian »

Kann man über odbc.
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

EugenE
Beiträge: 440
Registriert: So 10. Dez 2006, 14:59
OS, Lazarus, FPC: MacOSX Lion 10.7 (L 0.9.31 FPC 2.7.1)
CPU-Target: 64Bit
Kontaktdaten:

Beitrag von EugenE »

Habt ihr vllt ein Tutorial wie man es über odbc macht?^^ , weil ich habe null plan (ich weiß das hört man ständig :D )

EugenE
Beiträge: 440
Registriert: So 10. Dez 2006, 14:59
OS, Lazarus, FPC: MacOSX Lion 10.7 (L 0.9.31 FPC 2.7.1)
CPU-Target: 64Bit
Kontaktdaten:

Beitrag von EugenE »

so langsam habe ich jede database ausprobiert und alle gehen nicht , hat nicht jemand ein tutorial dafür? , bitte antworten :D

EDIT:
hat sich erledigt werde es anfangen mir selbst beizubringen , btw sqlite geht *freu*

ralli
Beiträge: 374
Registriert: Mi 13. Sep 2006, 15:57
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit
Wohnort: Hagen a.T.W.
Kontaktdaten:

Bei gehts einwandfrei

Beitrag von ralli »

Hallo EugenE,

ich habe lediglich im OnCreate Verzeichnis der Form folgendes eingetragen:

Code: Alles auswählen

procedure TForm1.FormCreate(Sender: TObject);
begin
 
Pfad := ExtractFilePath(Application.ExeName);
 
end;


und die globale Variable Pfad gesetzt, zu Testen damit die neue dbf in dem Verzeichnis gespeichert wird, aus dem das Programm aufgerufen wurde. Und weil ich unter Linux arbeite.

Code: Alles auswählen

public
    { public declarations }
 
    Pfad : String;

Dann natürlich folgene Zeile in Deinem Quellcode geändert:

von

Code: Alles auswählen

Dbf1.FilePath := 'C:\data\';


in

Code: Alles auswählen

Dbf1.FilePath := Pfad;


Und siehe da, alles funktioniert einwandfrei, die Datenbank customers.dbf samt Index Datei wurden erstellt. Warum so schnell aufgeben ?

Schau Dir mal den dbmaker an, den ich für Windows und Linux für unsere Community erstellt habe. Es ist ein komplettes Datenbankfrontend für die Komponente TDBF und kann auf meiner Homepage http://www.rgsoftware.de samt Quellcode gedownloaded werden. Das Programm wurde auch hier im Forum vorgestellt unter der Rubrik Programme.

Viel Spaß

Ralli

EugenE
Beiträge: 440
Registriert: So 10. Dez 2006, 14:59
OS, Lazarus, FPC: MacOSX Lion 10.7 (L 0.9.31 FPC 2.7.1)
CPU-Target: 64Bit
Kontaktdaten:

Beitrag von EugenE »

Hey Danke für den Tipp =)

Ich habe jez versucht alle datenreihen nach einander ausgeben damit ich die auswahlliste füllen kann doch das programm zeigt mir nur den ersten Wert also die erste zeile an und die rest lichen werden nicht angezeigt :(

ralli
Beiträge: 374
Registriert: Mi 13. Sep 2006, 15:57
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit
Wohnort: Hagen a.T.W.
Kontaktdaten:

Quellcode

Beitrag von ralli »

Hallo EugenE,

Wenn Du magst, häng das Projekt mit Quellcode an Dein Posting, dann schau ich mir das an. Ohne Sourcen kann ich Dir leider nicht weiterhelfen.

Ralli

EugenE
Beiträge: 440
Registriert: So 10. Dez 2006, 14:59
OS, Lazarus, FPC: MacOSX Lion 10.7 (L 0.9.31 FPC 2.7.1)
CPU-Target: 64Bit
Kontaktdaten:

Beitrag von EugenE »

Habe es angehängt
Dateianhänge
Laz.DB_Test1.rar
(3.96 KiB) 110-mal heruntergeladen

Antworten