Fórum Exemplo básico com IBX! #40980
16/12/2003
0
crie um banco de dados com uma tabela com a seguinte estrutura:
create table teste1 ( codigo integer not null, nome varchar(30) not null, endereco varchar(60), telefone varchar(15), primary key pk_teste1 (codigo) ); create index ix_teste1_nome on teste1 (nome);
crie um novo projeto no Delphi e coloque no form::
1 panel (Align=alTop, Caption=´´)
1 IBDatabase (DefaultTransaction = IBTransaction1, LoginPrompt = False)
1 IBTransaction (DefaultDatabase=IBDatabase1)
1 IBDataSet (Database=IBDatabase1, Transaction = IBTransaction1)
1 DataSource (DataSet = IBDataSet1)
1 dbGrid (Align=alClient, DataSource=DataSource1)
1 dbNavigator (no Panel -- DataSource = DataSource1)
dê um duplo-clique no IBDAtabase e configure::
database = caminho do banco criado anteriormente
clique na opção REMOTE e configure tb:
server = localhost
protocol = tcp
username = sysdba (ou outro usuário)
password = masterkey (a senha do seu usuário)
character set = o character set q vc criou o banco
clique OK
configure ainda no seu IBDatabase a propriedade AllowStreemedConnected = FALSE
agora, dê um duplo-clique no IBTransaction e selecione a opção READ COMMITED, clique OK
vamos configurar então o IBDataSet
na propriedade SelectSQL coloque seu select, ex::
SELECT * FROM TESTE1
WHERE NOME STARTING WITH :par1
agora, clique com o botão direito do mouse no IBDataSet1 e selecione no menu ´Dataset Editor...´
no editor do IBDataSet, na lista a esquerda (key fields) selecione apenas o campo CODIGO, na lista da direita, selecione todos os campos.
clique no botão GENERATE SQL -- nesse momento, observe os SQLs gerados, eles são um bom exemplo de como devem ser! E vc pode notar (e controlar) tudo q vai ocorrer em cada operação.
Clique OK para fechar o assistente.
Agora, dê um duplo-clique no IBDataSet e adicione o campos persistentes (botão direito e selecione o menu ´Add all fields)
bom, coloque agora no PANEL1 um Botão e um Edit.
limpe a propriedade Text do Edit e...
...no botão coloque o caption = ´pesquisar´ e o código no OnClick::
IBDataSet1.Close; IBDataSet1.Params[0].AsString := Edit1.Text; IBDataSet1.Open;
e no evento onCreate do seu Form coloque::
try IBDatabase1.Connected := True; except ShowMessage(´não foi possível realizar a conexão com o BD´); end;
e no OnClose ou OnDestroy do form coloque::
try if IBTransaction1.InTransaction then IBTransaction1.Commit; IBDatabase1.Connected := False; except ShowMessage(´erro de comunicação com o BD´); end;
coloque mais 2 botões no PANEL1 com os captions COMMIT e ROLLBACK, e coloque os códigos no OnClick (respectivamente)::
IBDataSet1.Transaction.CommitRetaining;
e
IBDataSet1.Transaction.RollbackRetaining;
PRONTO!!!
Execute o programa, clique no botão Pesquisar (não vai haver nada) inclua uns registros... clique no botão COMMIT, e etc... vai usando ele (incluir, editar, excluir, etc... etc...)!
Bom, é isso! Espero q ajude a todos os iniciantes. 8)
T+
Afarias
Curtir tópico
+ 0Posts
06/01/2004
Sremulador
:?: Pra que serve o AllowStreemedConnected;
:?: Como tratar o dead lock.
:?: O fireBird 1.5 RC8 faz o controle do dead lock.
:?: O Qual seria a melhor configuração para o Fbconfig.
Obrigado.
[/b:7ab7d53b6b]
Gostei + 0
07/01/2004
Afarias
Vc pode colocar esta propriedade para FALSE (recomendo) para q quando vc compilar seu executável e a propriedade Connected estiver TRUE (por esquecimento por exemplo) -- o IBDatabase não tente conectar-se automaticamente com o banco definido em tempo de projeto quando a aplicação for executada.
Evita muitos problemas de erros quando da distribuição da aplicação.
| Como tratar o dead lock.
1º -- Cuidando bem das transações e mantendo-as curtas.
No mais, com Try/Except
| O fireBird 1.5 RC8 faz o controle do dead lock.
Não entendi... O FB 1.5 permite sim o bloqueio explícito de registros (SELECET FOR UPDATE / WITH LOCK) -- é isso?? -- vc pode dar uma olhada sobre isso nas notas de versão do FB 1.5 -- mas muito cuidado ao usar esta funcionalidade.
| O Qual seria a melhor configuração para o Fbconfig.
??firebird.conf?? A padrão! :D ´cada caso é um caso´ -- não há uma configuração definitiva.
T+
Gostei + 0
19/01/2004
Marbravo
Eu uso delphi5 e não achei esse item no menu.
É possivel fazer esse exemplo no delphi5?
Gostei + 0
21/01/2004
Afarias
|É possivel fazer esse exemplo no delphi5?
SIM é possível... (aliais, é o Delphi q eu uso)
Atualize seu IBX::
http://codecentral.borland.com/codecentral/ccweb.exe/author?authorid=102
a última atualização para D5 é a 5.04 ::
http://codecentral.borland.com/codecentral/ccweb.exe/listing?id=18961
T+
Gostei + 0
28/01/2004
Marshall Mathers
[url]http://delphiforum.icft.com.br/forum/viewtopic.php?t=34152[/url]
Gostei + 0
02/02/2004
Poletto
Complementando o q você escreveu. É possível, se for, como faço, a partir do Delphi, através da linha de comando, CRIAR UM BANCO DE DADOS DO ZERO.
Exemplo:
Servidor : severprincipal
Protocolo: TCP
UserName: SYSDBA
Password: masterkey
Quero criar o Banco de Dados chamado BASETOTAL.GDB, porém preciso verificar se ele já não foi criado antes.
Tipo: IF NOT EXISTSDB(´serverprincipal:BASETOTAL.GDB´) THEN
CREATE DATABASE serverprincipal:BASETOTAL.GDB
E continuando...
IF NOT EXISTSTB(´serverprincipal:BASETOTAL.GDB.NOTAS´) THEN
CREATE TABLE serverprincipal.BASETOTAL.GDB.NOTAS (
.............) etc.. etc...
Os comandos acima não existem ainda...
Mas solicito que me ajude nesse sentido. Acredito que outros também se beneficiarão com isso.
Obrigado.
Gostei + 0
02/02/2004
Afarias
|BANCO DE DADOS DO ZERO.
vc pode rodar um script com CREATE DATABASE usando o IBScript por exempo, ou ainda usar um IBDatabase como segue::
with IBDatabase1 do
begin
SQLDialect := 3;
DatabaseName := ´severprincipal:caminho\BASETOTAL.GDB´;
Params.Clear;
Params.Add(´USER ´´SYSDBA´´´);
Params.Add(´PASSWORD ´´masterkey´´´);
Params.Add(´PAGE_SIZE 4096´);
Params.Add(´DEFAULT CHARACTER SET ISO8859_1´);
try
CreateDatabase;
except
{tratamento de erro}
end;
end;
|Tipo: IF NOT EXISTSDB(´serverprincipal:BASETOTAL.GDB´) THEN
|CREATE DATABASE serverprincipal:BASETOTAL.GDB
isso não existe. vc pode simplesmente tentar conectar-se com o banco de dados e capturar a exceção (que será gerada caso o banco não exista)
|IF NOT EXISTSTB(´serverprincipal:BASETOTAL.GDB.NOTAS´) THEN
|CREATE TABLE serverprincipal.BASETOTAL.GDB.NOTAS (
Para criar tabelas e outros objetos do banco de dados, utilize um componente de script, como o IBScript
T+
Gostei + 0
02/02/2004
Poletto
Valeu Muito....
Gostei + 0
07/04/2004
Maicon Loffi
Pra que serve o AllowStreemedConnected
Vc pode colocar esta propriedade para FALSE (recomendo) para q quando vc compilar seu executável e a propriedade Connected estiver TRUE (por esquecimento por exemplo) -- o IBDatabase não tente conectar-se automaticamente com o banco definido em tempo de projeto quando a aplicação for executada.
Coloquei esta propriedade pra false, agora quando executo o sistema, as tabelas que estão no DataModule, e teriam que ficar ativas (True), elas não ficam, tenho que dar uma Active (True) para cada tabela, ou seja, elas ficam fechadas ao entrar no sistema.
Gostei + 0
07/04/2004
Dart
Como instalar?
Valeu
Gostei + 0
08/04/2004
Dart
Não Consigo Atualizar o meu IBX No Delphi 5 da um erro.
e apaga os componentes IBX anteriores.
Como Resolvaer
Valeu
Dart
Gostei + 0
14/04/2004
Mahdak
Criar um banco em tempo de execução apertando no botao do meu programa, se alguem pudesse me ajudar ficarei grato!!!
[]´s :shock:
Gostei + 0
29/04/2004
Afarias
Para q o valor da propriedade Connected (ajustada em Design Time no Inspector) seja aplicada quando a aplicação for executada.
Em geral, é melhor deixar o AllowStreemedConnected como FALSE e, conectar no banco (e, de tabela abrir as tabelas) via código, ex:
IBDatabase1.Connected := True;
Query1.Open;
etc...
|Não Consigo Atualizar o meu IBX No Delphi 5 da um erro.
Para atualizar o IBX é necessário ter a atualização (Update Pack 1) do Delphi 5 aplicada.
|Criar um banco em tempo de execução apertando no botao do meu
|programa, se alguem pudesse me ajudar ficarei grato!!!
Vc pode usar o método CreateDatabase do IBDatabase::
with IBDatabase1 do
begin
DatabaseName := ´caminho_do_database´;
Params.Add(´USER ´SYSDBA´);
Params.Add(´PASS ´masterkey´);
Params.Add(´PAGE_SIZE 4096´);
Params.Add(´DEFAULT CHARACTER SET ISO8859_1´);
CreateDatabase;
end;
T+
Gostei + 0
19/05/2004
Dart
para que serve character set ?
Gostei + 0
24/05/2004
Eliene
Para atualizar o IBX é necessário ter a atualização (Update Pack 1) do Delphi 5 aplicada.
:?: Não sei onde posso encontrar este (Update Pack 1). Seria o SP1 citado no download da atualização ? Onde posso encontrá-lo ? Baixei a atualização e rodei a atualização. Os componentes existentes na palheta do Interbase sumiram. Por Favor me ajude...
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)