Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Absolut Database (https://www.delphipraxis.net/87641-absolut-database.html)

sexmagic 3. Mär 2007 15:28

Datenbank: ABS • Version: 5.08 • Zugriff über: ABS

Absolut Database
 
Hallo,

ich habe eine Vollversion von "Absolut Database", nur leider komme ich mit der Dokumentation dieser Komponenten garnicht klar, ich verstehe nicht welche Teile von der Komponenten nun wirklich benötigt werden um Inserts und Selects durchzuführen.


Folgendes hab ich vor:
Ich möchte ein Memo auslesen (zeilenweise), die Einträge in den Zeilen möchte ich anschliessend in die Datanbank schreiben.
Anschliessend möchte ich gerne eine Liste erstellen die eine Art Hyperlinks darstellen mit einer Spalte aus der DB, bei einem klick auf ein Element der Liste würde ich dann gerne ein neues Form oder ein anderes Tab laden und dort die Werte zu dem eintrag auf einem Panel darstellen.
Da ich bisher ausschliesslich PHP&MySQL programmiert hab, denke ich total anders :(

Dies war nur mein Vorhaben, ich wäre schon glücklich wenn mir jemand dabei helfen könnte ein Konstrukt zu erstellen wie man Daten in eine ABS schreibt und diese dann wieder ausliest in ein DB Grid oder sonst in ne Liste.
Es geht nur um den Ablauf.

Gemacht hab ich bis jetzt folgendes:
-Eine Datenbank erstellt mit dem DB_Manager der bei der Komponente dabei war.
-ABSDatabase, ABSTable,ABSQuery aufs Form gezogen
-Dann hab ich in den Komponenten die DatabaseFilename und Databasename angepasst

Ist nicht viel das ich gemacht habe aber nun weis ich nicht mehr weiter, aus den Demos werde ich nicht schlau einmal wird ABSQuery verwendet einmal wird ABSTable verwendet und ich weis nun nicht wie ich die Daten rein bekomme.
Leider gibt es so gut wie keine Tutorials für ABS und in den gängigen Delphi Foren sind auch so gut wie keine Threads zu finden.

Kann mir jemand vielleicht helfen den Ablauf und die Vorgehensweise zu verstehen? (Beispielcode an dem man erörtern könnte wäre sehr hilfreich).

Ich würde mich sehr über Hilfe freuen, da ich denke wenn mans einmal kapiert hat kann man sich selber helfen! ;)


Danke im voraus.

marabu 3. Mär 2007 16:04

Re: Absolut Database
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo,

eine Einführung in den Umgang mit den Komponenten erhältst du eigentlich schon, wenn du die Beispiele im Online-Manual nachvollziehst: klick

Wenn dabei Probleme auftreten, dann kannst du viel konkretere Fragen stellen. Angehängt habe ich ein kleines Demo-Programm, welches ich einmal für ein anderes Foren-Mitglied erstellt habe. Wenn du ein wenig suchst, dann findest du sicher auch im Forum noch einige Zeilen Code zum Studieren.

Freundliche Grüße

sexmagic 4. Mär 2007 11:35

Re: Absolut Database
 
Suuuuper das is genau das was ich gesucht habe, das is alles drin und noch einiges mehr wofür ich mir jetzt erstmal nen Thread sparen kann.

Vielen vielen Dank marabu, ich hab zwar noch nicht alles verstanden, war gestern aufm Blitz :) aber ich freue mich schon aufs durcharbeiten, sollten sich noch Fragen ergeben meld ich mich wieder.

Sehr geiles Programm, da is wirklich alles drin was man bei einem einfachen datenbankbasierten Proggi benötigt.

Nochmals herzlichen dank das du dir die Mühe gemacht hast.

Schönen Tag noch!

:thumb:


EDIT:

So da bin ich schon wieder mit der ersten Frage.
Ich hab nun versucht das durchzugehen aber icch bekomme immer eine Access Violation bei der Zeile die was in die DB Schreiben soll.

Hier mal der gesamte Code:
Delphi-Quellcode:
var
  Form1: TForm1;

const
  C_DBNAME = 'ABSTest';
  C_TABLENAME = 'test';


implementation

{$R *.dfm}


//DB erstellen
procedure TForm1.Button1Click(Sender: TObject);
begin
  //DB erstellen
  ABSDatabase1.DatabaseFileName := ExtractFilePath(Paramstr(0)) + C_DBNAME + '.abs';
  ABSDatabase1.DatabaseName := C_DBNAME;
  ABSDatabase1.CreateDatabase;
  ABSDatabase1.Open;

  //Table erstellen
  ABSQuery1.DatabaseName := C_DBNAME;
  ABSQuery1.SQL.Clear;
  ABSQuery1.SQL.Text := 'DROP TABLE ' + C_TABLENAME + '; ' + #10
                        + 'CREATE TABLE ' + C_TABLENAME + ' (' + #10
                        + 'id AUTOINC,' + #10
                        + 'name VARCHAR(50),' + #10
                        + 'PRIMARY KEY IndexName (id)' + #10
                        + ');';
  ABSQuery1.ExecSQL;

  Memo1.Clear;
  Button1.Enabled := FALSE;
  Button2.Enabled := TRUE;
end;



//DB Löschen
procedure TForm1.Button2Click(Sender: TObject);
begin
  Memo1.Clear;
  SysUtils.DeleteFile(ExtractFilePath(Paramstr(0)) + C_DBNAME + '.abs');
  if FileExists(ExtractFilePath(Paramstr(0)) + C_DBNAME + '.abs') then
    begin
      Memo1.Lines.Add('Datenbank konnte nicht gelöscht werden - ' + IntToStr(GetLastError));
      Memo1.Lines.Add(ExtractFilePath(Paramstr(0)) + C_DBNAME + '.abs');
      Button1.Enabled := FALSE;
      Button2.Enabled := TRUE;
    end
  else
    begin
      Memo1.Lines.Add('Datenbank gelöscht!');
      Button1.Enabled := TRUE;
      Button2.Enabled := FALSE;
    end
end;


procedure TForm1.Button3Click(Sender: TObject);
begin
  ABSTable1.Insert;
  ABSTable1.FieldByName('name').AsString := Edit1.Text;
  ABSTable1.Post;
end;

//Form Create
procedure TForm1.FormCreate(Sender: TObject);
begin
  ABSTable1.Name := C_TABLENAME;
  Memo1.Clear;
  Edit1.Text := '';
  if FileExists(ExtractFilePath(Paramstr(0)) + C_DBNAME + '.abs') then
  begin
    Memo1.Lines.Add('Installierte Datenbank gefunden:');
    Memo1.Lines.Add(ExtractFilePath(Paramstr(0)) + C_DBNAME + '.abs');
    Button1.Enabled := False;
    Button2.Enabled := TRUE;
  end
end;
Und genau hier bekomme ich die Access Violation: ABSTable1.FieldByName('name').AsString := Edit1.Text;
Irgendwie blick ich doch noch nicht so durch :)

Vielleicht kann mir einer noch helfen das hinzukriegen?

Danke

omata 4. Mär 2007 17:01

Re: Absolut Database
 
Hallo,

machst du vor dem ABSTable1.Insert und ABSTable1.Post auch irgendwo ein ABSTable1.Open?

Gruss
Thorsten

sexmagic 4. Mär 2007 17:47

Re: Absolut Database
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo Thorsten,

also ich hab das mal vor den Insert befehl hinzugefügt, jedoch immer noch eine Access Violation.

Delphi-Quellcode:
procedure TForm1.Button3Click(Sender: TObject);
begin
  ABSTable1.Open;
  ABSTable1.Insert;
  ABSTable1.FieldByName('name').AsString := Edit1.Text;
  ABSTable1.Post;
end;

Ich habe mal mein Testprogramm angehängt.

omata 4. Mär 2007 18:27

Re: Absolut Database
 
Ok, das Open ist auf jeden Fall schonmal besser.

Weist du den irgendwo ABSTable1.DatabaseName := C_DBNAME zu?

Gruss
Thorsten

sexmagic 4. Mär 2007 18:31

Re: Absolut Database
 
Liste der Anhänge anzeigen (Anzahl: 1)
Jo im ersten Posting sieht mans besser, aber hier nochmal, so hab ichs gemacht.

Delphi-Quellcode:
const
  C_DBNAME = 'ABSTest';
  C_TABLENAME = 'test';
Ahh ich glaub ich hab was gefunden, ich habe ja beim Buttonclick auf Datenbank erstellen den DatabaseFilename und den DatabaseName zugewiesen, wenn die Datenbank bereits besteht wird dieser Button jedoch nicht gedrück und somit auch keine Datenbank zugewiesen :)

Ich überdenke meine Struktur nochmla komplett is alles schwachsinn :)

Meld mich nachher wieder.

Danke

EDIT:

So ich hab das mal alles umgebaut, leider bekomme ich noch immer den selben Fehler.
Ich hab echt keine AHnung was da noch falsch sein könnte, ich hab das Projekt nochmal gepackt und angehängt, vielleicht kanns sichs mal wer anschauen?

ice-t 4. Mär 2007 21:34

Re: Absolut Database
 
Liste der Anhänge anzeigen (Anzahl: 1)
habs mal korrigiert und das DBGrid gleich eingebaut. Die Tabellennamen werden in den Komponenten zugewiesen. Lediglich der Databasefilename wird zur Laufzeit zugewiesen.

sexmagic 5. Mär 2007 19:44

Re: Absolut Database
 
Eine Packung merci für dich!

Danke nun hab ich einiges gelernt, ich denke ich kann nun beginnen das ganze in einem Programm zu verwenden.

Ihr habt mir wirklich sehr geholfen und ich bin sehr froh das es diese tolle Forum mit diesen netten Usern gibt (gibt auch andere ;) )

Danke euch allen nochmal!


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:22 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