Dicas Lazarus / Delphi : Criar base de dados firebird em tempo de execução

แชร์
ฝัง
  • เผยแพร่เมื่อ 25 ม.ค. 2025

ความคิดเห็น • 27

  • @walney2008
    @walney2008 2 ปีที่แล้ว

    Maravilha muito obrigado, gostaria de saber se teria videos com uso da palena SynEdit, quero aprender criar um editor de textos, jah estou com lazarus 2.2.4 instalado windows 10, obrigado

  • @walney2008
    @walney2008 2 ปีที่แล้ว

    consegui fazer assim, ae qualquer instrução sql que colocar no Memo é executada, criação de tabelas, insert,updade,delete , adorando este lazarus, tem como listar em uma combobox todas as colunas de uma tabela ?
    with sql_dados do
    begin
    close;
    sql.clear;
    sql.add(trim(Memo2.Text));
    ExecSQL;
    end;

    • @infocotidiano
      @infocotidiano  2 ปีที่แล้ว

      fiz isso em videos recentes do fluxo de caixa
      sql.text se nao me falha a memoria

  • @abnersrodrigues
    @abnersrodrigues 7 ปีที่แล้ว

    top Daniel... muito legal!!!

  • @falberiolima
    @falberiolima 7 ปีที่แล้ว +1

    Tem que levar em consideração que ele vai testar se o arquivo existe no computador local, no caso se usar um servidor remoto, fileexists não vai funcionar! como saber se um banco de dados já existe em um servidor estando em um terminal?

    • @infocotidiano
      @infocotidiano  7 ปีที่แล้ว

      +Alberio Lima salve ! Ótima observação!!
      Vou fazer uma observação na propriedade localhost !

  • @credson
    @credson 7 ปีที่แล้ว +1

    amigo vc tem algum ensinamento com freepascal em linux com mysql usando um mestre e detalhe?

    • @infocotidiano
      @infocotidiano  7 ปีที่แล้ว

      +kuringa tenorio vou fazer

    • @credson
      @credson 7 ปีที่แล้ว +1

      serio ? que legal pq estou querendo aprender estava meio parado em delphi mas irei voltar .....................inclusive estou com u projeto antigo que fui abrir aki otem esta dando erro file not found Vcl.Form.dcu ja coloquei nos foruns etc ate agora nada............tenho todos os componentes de terceiros estao instalados..........ja aconteceu com vc? tem alguma ideia como resolver?..........

    • @credson
      @credson 7 ปีที่แล้ว

      estava parado no delphi fui otem tentar abrir um projeto antigo aconteceu o seguinte erro file not found. vcl.forms.dcu vc tem alguma ideia se quizer passo a vc pelo email pra vc se puder ajudar obg

    • @infocotidiano
      @infocotidiano  7 ปีที่แล้ว

      +kuringa tenorio não sei dizer, o q a galera dos fóruns responde vc sobre este erro?

  • @credson
    @credson 7 ปีที่แล้ว

    amigo estou tetando resolver um amigo no forum esta ajudando desde ja agradeço as lhe garanto estou mais precisando e aprender freepascal no linux com mysql mestre e detalhe

  • @pr.miguelnoguera7986
    @pr.miguelnoguera7986 9 หลายเดือนก่อน

    Boa tarde. fiz exatamente como no video. No Lazarus nao funcioina.

    • @infocotidiano
      @infocotidiano  9 หลายเดือนก่อน

      boa tarde !
      Pode ser a versão do firebird, pois o exemplo foi feito no lazarus.
      Mas 7 anos atrás.

  • @JoseRoberto-ww1ph
    @JoseRoberto-ww1ph 7 ปีที่แล้ว +1

    Dani boa noite meu Jovem. Seria pedi d+ se desse certo de 1ª qualquer coisa no Lazarus ou CT ne ? rsrs to comprando uma ideia sua de criar a base de dados em tempo de execução... sendo que na mão professor é uma maravilha ... qdo vai pros aprendizes (rsrs) ja viu olha o codigo identico ao teu:
    procedure TFr_Criacao.FormCreate(Sender: TObject);
    var oCaminho_e_base : String;
    begin
    oCaminho_e_base := extractfilepath(Application.ExeName)+'dados\wcash.fdb';
    Mem_atividade.Lines.Clear;
    if not fileExists(oCaminho_e_base) then
    begin
    mem_atividade.Lines.add('Criando Base de Dados...');
    Coneccao.Protocol := 'firebird-2.5';
    Coneccao.LibraryLocation := extractfilepath(Application.ExeName)+'fbclient.dll';
    Coneccao.Database := oCaminho_e_base;
    Coneccao.Properties.clear;
    Coneccao.Properties.Values['dialect'] := '3' ;
    Coneccao.Properties.Values['createNewDatabase'] := 'create database ' + quotedstr(coneccao.database) +
    ' User '+ Quotedstr('SYSDBA') + ' password ' + QuotedStr('masterkey')+
    ' page size 4096 default character set ISO8859_1';
    Coneccao.User := 'SYSDBA';
    Coneccao.Password := 'masterkey';
    Coneccao.Connect;
    end;
    end;
    tanto no CT , Lazarus e Delphi apresentam erro.
    SQL Error: Dynamic SQL Error SQL error code: -104 Token unknown - line 1, column 91 page. Erro code: -104. Invalid token The SQL: create database "caminho" User 'SYSDBA' password 'masterkey' page size 4096 default character set ISO8859_1;.
    É isso ae mano ... se puder ajuda ao amigo ae

    • @JoseRoberto-ww1ph
      @JoseRoberto-ww1ph 7 ปีที่แล้ว

      Meu amigo só pra te dizer ... Consegui com componente nativo do lazarus o IBCOnection + SQLTransaction1... muito mais pratico !!!! olha a sintaxe dele :
      oCaminho_e_base := extractfilepath(Application.ExeName)+'dados\wcash.fdb';
      Mem_atividade.Lines.Clear;
      mem_atividade.Lines.add('Criando Base de Dados...');
      Coneccao.UserName := 'SYSDBA';
      Coneccao.Port := 3050;
      Coneccao.Password := 'masterkey';
      Coneccao.HostName := 'localhost';
      Coneccao.DatabaseName := oCaminho_e_base;
      Coneccao.CreateDB;

    • @infocotidiano
      @infocotidiano  7 ปีที่แล้ว

      Funcionou no meu... comentei as linhas abaixo:
      var oCaminho_e_base : String;
      begin
      Mem_atividade.Lines.Clear;
      // removido o caminho original para eu poder testar no meu linux, veja se existe a pasta dados onde esta criando
      // oCaminho_e_base := extractfilepath(Application.ExeName)+'dados\wcash.fdb';
      oCaminho_e_base := extractfilepath(Application.ExeName)+'wcash.fdb';
      Mem_atividade.Lines.add(oCaminho_e_base);
      if not fileExists(oCaminho_e_base) then
      begin mem_atividade.Lines.add('Criando Base de Dados...');
      Coneccao.Protocol := 'firebird-2.5';
      // testado no Linux nao preciso definir a dll fbclient
      // Coneccao.LibraryLocation := extractfilepath(Application.ExeName)+'fbclient.dll';
      Coneccao.Database := oCaminho_e_base;
      Coneccao.Properties.clear;
      Coneccao.Properties.Values['dialect'] := '3' ;
      // Removido linha abaixo para teste, pois estava funcionando se ignorar o page size até o final....
      // Coneccao.Properties.Values['createNewDatabase'] := 'create database ' + quotedstr(coneccao.database) + ' User '+ Quotedstr('SYSDBA') + ' password ' + QuotedStr('masterkey')+ ' page size 4096 default character set ISO8859_1';
      // funcionou da forma abaixo:
      Coneccao.Properties.Values['createNewDatabase'] := 'create database ' + quotedstr(coneccao.database) + ' User '+ Quotedstr('SYSDBA') + ' password ' + QuotedStr('masterkey')+ ' page_size 4096 '+ 'default character set ISO8859_1';
      Coneccao.User := 'SYSDBA';
      Coneccao.Password := 'masterkey';
      Coneccao.Connect;
      end;

    • @JoseRoberto-ww1ph
      @JoseRoberto-ww1ph 7 ปีที่แล้ว +1

      Ok !!! se puder faz o teste no windows só para verificar !! as vezes (nós sabemos) que sistemas operacionais influenciam no resultado final das compilações. Vc concorda que na outra compilação como o objeto nativo do Lazarus é mais simples ?
      Abraços mano
      Tmj !!!! Sempre somando !!!!

    • @infocotidiano
      @infocotidiano  7 ปีที่แล้ว +1

      mandei os fontes via telegram, esta subindo...
      mas so p saber qdo compilei o q vc mandou no meu deu erro tb...
      depois q ajustei, funcionou

    • @infocotidiano
      @infocotidiano  7 ปีที่แล้ว

      Jose Roberto este post?

  • @Artur7490
    @Artur7490 7 ปีที่แล้ว

    Eu sei que aqui não é fórum, mas já não sei para onde correr. Estou fazendo um programa que tem que acessa um banco de dados. No banco tem informações dos pacientes. Eu tenho um dado Índice de massa corporal, IMC, (no banco ele está como 'decimal 3,1') se o IMC ficar entra uma valor X ele é automaticamente preenchido (TDBEdit) como normal, sobre peso e obesidade sendo que essa informações já estão no banco como enum.
    if (qryPacienteIMC.AsFloat>=18.5) and (qryPacienteIMC.AsFloat

    • @infocotidiano
      @infocotidiano  7 ปีที่แล้ว

      if (qryPacienteIMC.value >=18.5) and (qryPacienteIMC.value

    • @Artur7490
      @Artur7490 7 ปีที่แล้ว +1

      Valeu

    • @infocotidiano
      @infocotidiano  7 ปีที่แล้ว

      +Artur Fonseca Pereira vlw !

    • @infocotidiano
      @infocotidiano  7 ปีที่แล้ว

      +Artur Fonseca Pereira deu certo?

    • @Artur7490
      @Artur7490 7 ปีที่แล้ว

      Acho que nao sei como falar o que quero. Nao deu, mas eu nao sei se e erro meu o codigo. Mesmo assim valeu pela força.