GARANTIR DESCONTO

Fórum Dúvidas em firebird!!!! #38756

15/09/2003

0

Pessoal estou terminando minha primeira aplicação usando o firebird, mas estou passando por algumas dúvidas e preciso de ajuda.
Uso o firebird 1.0 e tenho acesso a ele usando o IBquery e IBTable, mas não consigo o código pra fazer a gravação de dados no banco e também não consigo acessar o banco em rede! Já coloquei o IP do servidor mas sempre dá erro!
Agradeço a quem poder me ajudar a resolver esse problema!


Virus69

Virus69

Responder

Posts

15/09/2003

Afarias

1º -- NUNCA USE TABLE (IBTable) !!

2º -- vamos lá ::

coloque um IBDatabase no form ou datamodule (dm), dê um duplo-clique sobre o mesmo, na tela de configuração do componente faça::

escolha a opção REMOTE, e configure::

Server = nome ou IP do seu servidor (se for local, digite LOCALHOST)
Protocol = TCP
Database = o caminho da sua base de dados (GDB) -- igual como está no computador onde se encontra (servidor)

(OBS:: ip não funciona para Win95, ou antigos/não-atualizados Win98 sem Sockts 2.0)

coloque também o USER NAME (sysdba por ex.) , o PASSWORD do usuário (masterkey por ex.) -- a ROLE (se não for o SYSDBA) e o CHARACTER SET (o mesmo do banco se tiver sido definido um)

então desmarque LOGIN PROMPT e clique OK.

coloque agora 1 IBTransaction (vc pode ter apenas 1 ou vários destes) -- dê cofigure a propriedade DefaultDatabase para o database acima, e dê um duplo-clique no componente.

Então, marque a opção READ COMMITED e clique OK.

Agora, para ´querys´ que serão ´editáveis´, vamos usar um IBDataSet (nunca IBTable e não IBQuery pelo fato do IBDataSet ser mais prático)

Coloque um IBDataSet no form ou dm e configure as propriedades Database e Transaction (para o IBDatabase e IBTransaction antes configurados)

preencha a propriedade SelectSQL com o select da sua tabela (ex:: SELECT campo1, campo2, campo3 from MinhaTabela)

de preferência coloque uma cláusula WHERE (exemplo:: select * from clientes where cidade = :tal)

Preencha tb (se for usar código auto-numerado) a propriedade GeneratorField (indique o nome do campo q receberá o valor, o nome do generator q guarda o valor e o evento onde será gerado -- On Post ou On New Record)

Agora, é só preencher as propriedades ModifySQL, DeleteSQL, InsertSQL e RefreshSQL que serão executadas automaticamente nas operações (respectivamente) :: Edit/Post; Delete; Append/Post e Refresh.

Para preencher facilmente estas propriedades clique com o botão direito do mouse sobre o IBDataSet e escolha no menu a opção Dataset Editor...

Então, no formulário q aparece, faça::

na lista de campos do lado direito (update fields) selecione TODOS OS CAMPOS (que serão atualizados/inseridos pelo usuário)

na lista de campos do lado esquerdo (key fields) selecione apenas os campos CHAVE (em geral, apenas o(s) campo(s) da chave primária)

Então, clique no botão GENERATE SQL -- vc pode verificar o resultado olhandos as páginas dos SQLs gerados.

então clique OK! pronto... coloque um DataSource associado ao dadaset e um grid associado ao DataSource e pode usar!!

na execução do seu programa, para conectar com a base de dados, use a propriedade Connected, ex:

IBDatabase1.Connected := True;


para gravar DEFINITIVAMENTE as ´alterações´ no banco, utilize o método COMMIT (ou commitretaining) da transação associada ao DataSet, ex::

IBDataSet1.Transaction.Commit;

ou

IBTransaction1.Commit;



T+


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar