de IBX para DBExpress

Firebird

17/08/2010

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

Marcos Roberto

Marcos Roberto

Curtidas 0

Respostas

Eriley Barbosa

Eriley Barbosa

17/08/2010

SimpleDataset ou SQLDataset + DataSetProvider + ClientDataset.   Atenciosamente   Eriley
GOSTEI 0
Fernando Farah

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

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



GOSTEI 0
Marcos Roberto

Marcos Roberto

17/08/2010

Desculpem pelo tamanho da letra. Foi um problema aqui.

GOSTEI 0
Eriley Barbosa

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

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

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.

GOSTEI 0
Deivison Melo

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;
GOSTEI 0
Marcos Roberto

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.

GOSTEI 0
Eriley Barbosa

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
POSTAR