de IBX para DBExpress
Pessoal
Estou migrando no Delph7 os componentes IBX para DBExpress e pensei em usar o
SQLDataSet em vez do IBDataset mas a instrução abaixo não é possivel.
....
IBDataset1.Close;
IBDataset1.SelectSQL.Clear;
IBDataset1.SelectSQL.Add(strSql);
IBDataset1.Open;
IBDataset1.First;
.....
Neste formulario precisarei fazer consultas, exclusões, alterações e inclusões
qual componentes devo usar ?
Vlw
Estou migrando no Delph7 os componentes IBX para DBExpress e pensei em usar o
SQLDataSet em vez do IBDataset mas a instrução abaixo não é possivel.
....
IBDataset1.Close;
IBDataset1.SelectSQL.Clear;
IBDataset1.SelectSQL.Add(strSql);
IBDataset1.Open;
IBDataset1.First;
.....
Neste formulario precisarei fazer consultas, exclusões, alterações e inclusões
qual componentes devo usar ?
Vlw
Marcos Roberto
Curtidas 0
Respostas
Eriley Barbosa
17/08/2010
SimpleDataset ou SQLDataset + DataSetProvider + ClientDataset.
Atenciosamente
Eriley
GOSTEI 0
Fernando Farah
17/08/2010
levo uma coisa comigo, tratando de DBX pense sempre no trio de componentes agindo junto com a suite DBX
como o Eriley disse, ClientDataSet + DataSetProvider + SQLDataSet, sem duvidas a melhor combinação de componentes que já trabalhei .
bye
GOSTEI 0
Marcos Roberto
17/08/2010
Pessoal
Desculpem mesmo, mas ainda estou enrolado.
Como fazer as ligacoes, onde coloco o sentença SQL ?
Para gravar onde coloco a sentença SQL para inserir registros ?
No clientDataSet não consigo apontar para a tabela.
vlw
Desculpem mesmo, mas ainda estou enrolado.
Como fazer as ligacoes, onde coloco o sentença SQL ?
Para gravar onde coloco a sentença SQL para inserir registros ?
No clientDataSet não consigo apontar para a tabela.
vlw
GOSTEI 0
Marcos Roberto
17/08/2010
Desculpem pelo tamanho da letra. Foi um problema aqui.
GOSTEI 0
Eriley Barbosa
17/08/2010
Paleta DBExpress:
* SQLConnection
* SQLQuery
DataAcess
* DataSetProvider
* ClientDataSet
* DataSource
Ligações dos Componentes do Banco:
1 – Dê um duplo clique no componente SQLConnection:
2- Defina uma nova conexão, também a Base de Dados, Usuário e Senha e também LoginPrompt com False ( sempre passando os parâmetros em Params ).
3 – No componente SQLQuery defina a propriedade SQLConnection com o nome que foi dado ao componente SQLConnection.
4 – Na propriedade SQL(Strings) do componente SQLQuery defina o SQL de consulta. Ex: select * from Clientes;
5 – Ligue agora a propriedade DataSet do componente DataSetProvider ao SQLQuery.
6 – Ligue a propriedade ProviderName do componente ClientDataSet ao DataSetProvider.
7 – Ligue a propriedade DataSet do componente DataSource ao ClientDataSet.
8 – Ative o componente ClientDataSet (Active = True ).
Atenciosamente
Eriley
GOSTEI 0
Eriley Barbosa
17/08/2010
Você deve adicionar os campos no Fields Editor tanto na SQLQuery, como no ClientDataset e configurar campo por campo nos dois pela propriedade ProviderFlags, é nesta propriedade que você determina quais campos serão inseridos, atualizados, qual campo é chave, etc.
Atenciosamente
Eriley
GOSTEI 0
Marcos Roberto
17/08/2010
Eriley
Eureka. Deu tudo OK.
Mais uma vez obrigado e um grande abraço.
Extensivo a todos do forum.
RESOLVIDO.
Eureka. Deu tudo OK.
Mais uma vez obrigado e um grande abraço.
Extensivo a todos do forum.
RESOLVIDO.
GOSTEI 0
Deivison Melo
17/08/2010
quais suas dúvidas???
Seria interessante você criar um arquivo *.ini e ai você daria a flexibilidade ao sistema em relação ao caminho do banco.
Algo tipo (no evento onCreate do DataModule):
procedure TDM.DataModuleCreate(Sender: TObject);
begin
try
with ConexaoDB do
begin
Connected := False;
connectionname := 'PortoBello';
drivername := 'interbase';
getdriverfunc := 'getSQLDriverINTERBASE';
libraryname := 'dbexpint.dll';
params.clear;
params.add('drivername=interbase');
params.add('database= ' + LerInI('sga.ini', 'DB', 'caminho')); //aqui arquivo ini
params.add('rolename=rolename');
params.add('user_name=' + LerInI('sga.ini', 'DB', 'usuario')); //aqui arquivo ini
params.add('password=' + LerInI('sga.ini', 'DB', 'senha')); //aqui arquivo ini
params.add('servercharset=');
params.add('sqldialect=3');
params.add('blobsize=-1');
params.add('commitretain=false');
params.add('waitonlocks=true');
params.add('errorresourcefile=');
params.add('localecode=0000');
params.add('interbase transisolation=readcommited');
params.add('trim char=false');
vendorlib := 'gds32.dll';
Connected := true;
end;
except
raise Exception.Create('Verifique se as configurações do arquivo "sga.ini" estão corretas!');
end;
end;
end;
procedure TDM.DataModuleCreate(Sender: TObject);
begin
try
with ConexaoDB do
begin
Connected := False;
connectionname := 'PortoBello';
drivername := 'interbase';
getdriverfunc := 'getSQLDriverINTERBASE';
libraryname := 'dbexpint.dll';
params.clear;
params.add('drivername=interbase');
params.add('database= ' + LerInI('sga.ini', 'DB', 'caminho')); //aqui arquivo ini
params.add('rolename=rolename');
params.add('user_name=' + LerInI('sga.ini', 'DB', 'usuario')); //aqui arquivo ini
params.add('password=' + LerInI('sga.ini', 'DB', 'senha')); //aqui arquivo ini
params.add('servercharset=');
params.add('sqldialect=3');
params.add('blobsize=-1');
params.add('commitretain=false');
params.add('waitonlocks=true');
params.add('errorresourcefile=');
params.add('localecode=0000');
params.add('interbase transisolation=readcommited');
params.add('trim char=false');
vendorlib := 'gds32.dll';
Connected := true;
end;
except
raise Exception.Create('Verifique se as configurações do arquivo "sga.ini" estão corretas!');
end;
end;
end;
GOSTEI 0
Marcos Roberto
17/08/2010
Pessoal
Antes de dar como concluido, só + esta dúvida.
Usando estes componentes já é feito o tratamento de transações, commit´s e tudo mais, ou é necessário
usar algum artifício ???
*Já consegui terminar o form de Manutenção de Clientes com a ajuda de vc´s.
Muito Grato.
Antes de dar como concluido, só + esta dúvida.
Usando estes componentes já é feito o tratamento de transações, commit´s e tudo mais, ou é necessário
usar algum artifício ???
*Já consegui terminar o form de Manutenção de Clientes com a ajuda de vc´s.
Muito Grato.
GOSTEI 0
Eriley Barbosa
17/08/2010
Quando você da um ApplyUpdates é dado um comit no banco.
Mas é possível controlar as transações:
http://www.ramosdainformatica.com.br/art_recentes01.php?CDA=316
Atenciosamente
Eriley
GOSTEI 0