Page 1 of 2 1 2 LastLast
Results 1 to 15 of 24

Thread: Linux (Xubuntu) applicatie met Lazarus/Firebird

  1. #1
    Senior Member
    Join Date
    Sep 2004
    Location
    BELGIE(Vilvoorde)
    Posts
    685

    Linux (Xubuntu) applicatie met Lazarus/Firebird

    Kennis van Lazarus 1.0.12 & Firebird 2.5 is minimaal.
    Heb een kleine database gemaakt "test.fdb" die ik via FlameRobin kan bekijken en bewerken. Dus Firebird werkt!
    Zou toch graag een programma in elkaar zetten, maar weet niet welke data componenten ik moet gebruiken en hoe ze te activeren zodat de data zichtbaar is een een grid. Moet ik Zeos installeren of kan het zonder?
    Kent iemand een voorbeeld step by step voor beginners?

  2. #2
    John Kuiper
    Join Date
    Apr 2007
    Location
    Almere
    Posts
    8,747
    Ik denk dat het dit is wat je zoekt

  3. #3
    Senior Member
    Join Date
    Sep 2004
    Location
    BELGIE(Vilvoorde)
    Posts
    685
    Bedankt, had dit reeds gevonden maar blijkt toch niet duidelijk voor mij.
    Zoals ik vermelde, heb ik een "test.fdb" met een paar velden.
    Op de "form" in Lazarus (Linux) heb ik een IBconnection:
    -Databasename: /home/interbase/test.fdb
    -Password: masterkey
    -Username: SYSDBA

    Welke andere componenten moeten er nog bij?
    Wil graag embedded db.

    Een heel simpel voorbeeld zou wonderen doen.

  4. #4
    mov rax,marcov; push rax marcov's Avatar
    Join Date
    Apr 2004
    Location
    Ehv, Nl
    Posts
    10,357
    Breindumpje; ruwweg:

    Voorbereiding:
    - zorg dat firebird (client/embedded) geinstalleerd is. Zoek uit wat de naam van de clientlibrary is. (normaal libfbclient.so oid). Deze staat typisch in een path staat dat in /etc/ld.so.conf vermeldt is.

    Designtime:
    - Voeg een TQuery toe, vul daar bij SQL een select statement bij.
    - selecteer die query bij "dataset" in het (db)grid.

    Zet bij opstarten query en connection op active.

    bij problemen:

    1. Controleer dat de clientlibrary naam die FPC verwacht (libfbclient.so) klopt. Indien niet, probeer eens een symlink, gevolgt door "ldconfig" draaien op de prompt (als root/sudo)
    3. Indien dat niet helpt, in het hoofdprogramma (de .dpr/lpr) unit "ibase60dyn" includen, en dan direct na de begin

    delphi Code:
    1. InitialiseIBase60('mijnclientnaam.so.3.5');

    toevoegen. Met mijnclientnaam hoe jouw distributie de client (of client/server combi) library noemt.

    Typische namen zijn libgdb, libfbclient en libfbembed gevolgt door de *nix DLL extension ".so". Daarna kunnen nog versie nummers volgen. Die moet je meenemen tenzij je met symlinks werkt.

    Status van FB3 is mij onbekend
    Last edited by marcov; 29-Sep-13 at 18:20.

  5. #5
    Senior Member
    Join Date
    Sep 2004
    Location
    BELGIE(Vilvoorde)
    Posts
    685
    Marcov,
    Thks voor de vele uitleg, maar toch niet zo eenvoudig voor een beginner.
    Heb ondertussen veel zitten prutsen en heb toch een resultaat kunnen boeken.
    Via een IBConnection + SQLTransaction + SQLquery (Select * from testtable1 + Datasource + DBgrid.
    De data is actief in de dbgrid.

    Kan men ook via een 'Table component" werken (welke) ipv een Sqlquery ???

  6. #6
    mov rax,marcov; push rax marcov's Avatar
    Join Date
    Apr 2004
    Location
    Ehv, Nl
    Posts
    10,357
    Ik denk van wel, maar ttable enz wordt afgeraden voor nieuwe code vziw door zowel Lazarus en Delphi

  7. #7
    John Kuiper
    Join Date
    Apr 2007
    Location
    Almere
    Posts
    8,747
    Quote Originally Posted by seghele View Post
    Kan men ook via een 'Table component" werken (welke) ipv een Sqlquery ???
    Als er een Table component voor bestaat, haalt deze standaard met 'SELECT * FROM tabelnaam' alle records op. Voo een relatief klein tabel van 20 records niet zo spannend, maar als deze inmiddels naar de 1000 - 100000 records gaat, wordt het niet meer leuk. Ook worden er velden opgehaald, die je niet wilt zien of op dat moment niet gebruikt. Het kan, hoeft niet, ook je performance naar beneden halen.

  8. #8
    Senior Member
    Join Date
    Sep 2004
    Location
    BELGIE(Vilvoorde)
    Posts
    685
    Voo een relatief klein tabel van 20 records niet zo spannend, maar als deze inmiddels naar de 1000 - 100000 records gaat, wordt het niet meer leuk.
    De volledige databade is < dan 150 records. Het gaat om een adressenbestand van familie, vrienden enz...

    Als ik een IBTable component plaats kan ik geen Tablename selecteren.
    Moeten er nog andere componenten bij en met welke instellingen?

  9. #9
    John Kuiper
    Join Date
    Apr 2007
    Location
    Almere
    Posts
    8,747
    IBTable haalt de namen van de tabellen op vanuit IBConnection.
    Heb je deze dan wel geconnecteerd?

  10. #10
    Senior Member
    Join Date
    Sep 2004
    Location
    BELGIE(Vilvoorde)
    Posts
    685
    Heb met volgende componenten een werkende db:
    IBDatabase + IBTransaction + IBTable + Datasource.

    Nu zou ik nog graag een BLOB veld willen gebruiken om JPG in op te slaan.
    Graag info aub.

  11. #11
    Welke info zoek je en waar loop je vast?
    Marcel

  12. #12
    Senior Member
    Join Date
    Sep 2004
    Location
    BELGIE(Vilvoorde)
    Posts
    685
    Nu zou ik nog graag een BLOB veld willen gebruiken om JPG in op te slaan.

    Zou graag een button op de form hebben die een selectie van een JPG toelaat zodat ik deze kan zien op de form en die dan te saven in de Firebird table via een andere button.
    In Delphi moet men JPG vermelden in de Uses, hoe in Lazarus?
    Misschien heeft iemand een klein voorbeeld met Firebird?

  13. #13
    John Kuiper
    Join Date
    Apr 2007
    Location
    Almere
    Posts
    8,747
    Last edited by Marcel; 03-Oct-13 at 13:40. Reason: NLDelphi sfeer vergeten

  14. #14
    Senior Member
    Join Date
    Sep 2004
    Location
    BELGIE(Vilvoorde)
    Posts
    685
    Heb volgende code, maar krijg reeds een "Stream ERROR" na het selecteren van een JPG.
    Pascal code heb ik kunnen leren na mijn 50 ste via boekjes en internet.
    Dus...een beetje genade met mij.

    Code:
    procedure TForm1.BitBtnFOTOClick(Sender: TObject);
    var
      BlobStream : TStream;
      theimagefile: TFilename;
    begin
    with Datamodule1.IBTable1 do
         Begin
         Datamodule1.IBTable1.Edit;
         OpenPictureDialog1.Filename := '*.*';
         OpenPictureDialog1.Execute;
         theimagefile := OpenPictureDialog1.Filename;
         IF (theimagefile = '') OR (theimagefile = '*.*')
         THEN MessageDlg('Niets gekozen ... !', mtinformation, [mbOK], 0) else
         Begin
           Try
             BlobStream :=  CreateBlobStream(Datamodule1.IBTable1.FieldByName('FOTO'),bmRead);
             Image1.Picture.LoadFromStream(BlobStream);
    
              //// hier moet iets komen om naar de database "Table" te verwijzen!!!
    
           Finally
              BlobStream.Free;
           End;   //try .. finally
         End;   //else
         END;   //with ... do begin
    end;

  15. #15
    Quote Originally Posted by seghele View Post
    Code:
    procedure TForm1.BitBtnFOTOClick(Sender: TObject);
    var
      BlobStream : TStream;
      theimagefile: TFilename;
    begin
    with Datamodule1.IBTable1 do
         Begin
         Datamodule1.IBTable1.Edit;
         OpenPictureDialog1.Filename := '*.*';
         OpenPictureDialog1.Execute;
         theimagefile := OpenPictureDialog1.Filename;
         IF (theimagefile = '') OR (theimagefile = '*.*')
         THEN MessageDlg('Niets gekozen ... !', mtinformation, [mbOK], 0) else
    Dat is een wat wonderlijke constructie.

    Dit is wat gebruikelijker:

    delphi Code:
    1. if OpenPictureDialog1.Execute then
    2.   begin
    3.     ..
    4.   end;

    Execute is een method die de dialoog uitvoert en TRUE teruggeeft als de gebruiker een of meerdere bestanden geslecteerd heeft en op OK klikt (of dubbelklikt op een bestandsnaam).
    Het resultaat is FALSE als de gerbuiker de dialoog sluit via Cancel of het "kruisje rechtsboven".


    Dat heeft verder waarschijnlijk niets met jouw streming probleem te maken, maar het viel nogal op.

    Bart

Page 1 of 2 1 2 LastLast

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •