Como adicionar registros em uma ibquery
Galera é o seguinte eu uso uma IBquery para procurar na base os clientes cadastrados e trago somente os dados basicos assim:
+-----------------------
| IBquery
| Nome, Fone, CNPJ
+-----------------------
ai quando eu detalho o cliente X eu troco de Panel e mostro os dados completos dele, que vem de uma IBdataset assim:
+-----------------------
| IBdataSet
| Nome, Fone, CNPJ, Cidade, Endereco, Bairro, Contato, (etc)
+-----------------------
Pergunta, como posso fazer uma inclusão na IBdataSet e atualizar na IBquery sem passar a instrução sql na base novamente,
Ps: ´passar a instrução sql na base novamente´ que digo seria dar um ´select Nome, Fone, CNPJ from clientes´
Grato tento fazer isso pra evitar que venha informações desnecessária na transação, pois grande parte da rede opera com ADSL...
Thanks
+-----------------------
| IBquery
| Nome, Fone, CNPJ
+-----------------------
ai quando eu detalho o cliente X eu troco de Panel e mostro os dados completos dele, que vem de uma IBdataset assim:
+-----------------------
| IBdataSet
| Nome, Fone, CNPJ, Cidade, Endereco, Bairro, Contato, (etc)
+-----------------------
Pergunta, como posso fazer uma inclusão na IBdataSet e atualizar na IBquery sem passar a instrução sql na base novamente,
Ps: ´passar a instrução sql na base novamente´ que digo seria dar um ´select Nome, Fone, CNPJ from clientes´
Grato tento fazer isso pra evitar que venha informações desnecessária na transação, pois grande parte da rede opera com ADSL...
Thanks
Marcos Fernando
Curtidas 0
Respostas
Afarias
27/09/2005
|Pergunta, como posso fazer uma inclusão na IBdataSet e atualizar na
|IBquery sem passar a instrução sql na base novamente,
não pode.
|tento fazer isso pra evitar que venha informações desnecessária na
|transação, pois grande parte da rede opera com ADSL...
La vai uma [u:1c7f91917e]dica[/u:1c7f91917e]: use tabela uma tabela memória para mostrar as informações do IBQuery (por exemplo, um ClientDataSet)
Ao abrir o IBQuery jogue os dados obtidos para a tabela de memória (se estiver usando um ClientDataSet/DataSetProvider, basta abrir o ClientDataset e ele faz isso automaticamente) ... então, quando um novo registro for inserido no IBDataSet, pegue os dados desse novo registro (no buffer do DataSet) e insira (append) na tabela de memória 8)
T+
|IBquery sem passar a instrução sql na base novamente,
não pode.
|tento fazer isso pra evitar que venha informações desnecessária na
|transação, pois grande parte da rede opera com ADSL...
La vai uma [u:1c7f91917e]dica[/u:1c7f91917e]: use tabela uma tabela memória para mostrar as informações do IBQuery (por exemplo, um ClientDataSet)
Ao abrir o IBQuery jogue os dados obtidos para a tabela de memória (se estiver usando um ClientDataSet/DataSetProvider, basta abrir o ClientDataset e ele faz isso automaticamente) ... então, quando um novo registro for inserido no IBDataSet, pegue os dados desse novo registro (no buffer do DataSet) e insira (append) na tabela de memória 8)
T+
GOSTEI 0
Marcos Fernando
27/09/2005
Grato mestre eu estava usando o componente errado,,
hehe
Thanks deu blz
hehe
Thanks deu blz
GOSTEI 0
Marcos Fernando
27/09/2005
Galera é o seguinte,
Nunca usei o componente ClientDataSet, acabei de colocar no form e coloquei no CommandText := ´SELECT INDICE, NOMERAZAO, fone FROM FORNECEDORES ORDER BY NOMERAZAO´;
ok abriu a minha tela de procura com os dados básicos, agora se o usuário selecionar um fornecedores e detahar preciso que a IBDataSet traga os datos completos tais como ´´SELECT * FROM FORNECEDORES ORDER BY NOMERAZAO´ ai eu posso fazer a alteração dos dados, e assim que gravar preciso atualizar o ClientDataSet..
Já estou desde ontem tentando e nada, se algum tiver um demo ou até mesmo como posso fazer me ajudaria mui.
Uso IBX
Nunca usei o componente ClientDataSet, acabei de colocar no form e coloquei no CommandText := ´SELECT INDICE, NOMERAZAO, fone FROM FORNECEDORES ORDER BY NOMERAZAO´;
ok abriu a minha tela de procura com os dados básicos, agora se o usuário selecionar um fornecedores e detahar preciso que a IBDataSet traga os datos completos tais como ´´SELECT * FROM FORNECEDORES ORDER BY NOMERAZAO´ ai eu posso fazer a alteração dos dados, e assim que gravar preciso atualizar o ClientDataSet..
Já estou desde ontem tentando e nada, se algum tiver um demo ou até mesmo como posso fazer me ajudaria mui.
Uso IBX
GOSTEI 0
Afarias
27/09/2005
vamos por partes... qual o primeiro problema exatamente q vc está enfrentando?
T+
T+
GOSTEI 0
Marcos Fernando
27/09/2005
Vamos então seguinte:
eu qro um ClientDataSet com os dados básicos e eu pegando o indice eu abra o IBdataSet com todos os dados pra alteração até ai blz.
So não sei como tratar o ClientDataSet + DataSetProvider + IBdataSet
pois mudo o ClientDataSet.CommandText := ´SELECT INDICE, NOMERAZAO, fone FROM FORNECEDORES ORDER BY NOMERAZAO´;
ai ele muda o ClientDataSet.SelectSQL.text também, só que quero que o ClientDataSet traga todas as informações,
é isso
Thanks
eu qro um ClientDataSet com os dados básicos e eu pegando o indice eu abra o IBdataSet com todos os dados pra alteração até ai blz.
So não sei como tratar o ClientDataSet + DataSetProvider + IBdataSet
pois mudo o ClientDataSet.CommandText := ´SELECT INDICE, NOMERAZAO, fone FROM FORNECEDORES ORDER BY NOMERAZAO´;
ai ele muda o ClientDataSet.SelectSQL.text também, só que quero que o ClientDataSet traga todas as informações,
é isso
Thanks
GOSTEI 0
Afarias
27/09/2005
|So não sei como tratar o ClientDataSet + DataSetProvider + IBdataSet
O clientDataSet deve estar ´ligado´ ao IBQuery e não ao IBDataSet
Apenas defina o SQL da Query e ligue o Provider a Query e o CDS ao Provider, então abra o CDS.
Quando desejar alterar um registro do CDS pegue o código do registro selecionado e jogue no Where do IBDataSet, abrindo no IBDataSet todos os dados daquele registro.
Ao terminar a alteração no IBDataSet (after post?) copie as informações do IBDataSet para o registro do CDS (Edit ... Post)
Se o usuário pedir NOVO, abra o IBDataSet sem registros (WHERE CODIGO=0 ?) e dê um Append nele, quando o usuário gravar (After post ?) dê um append no CDS e copie os registros do IBDataSet para ele.
Sempre depois que coiar os registros do IBDataSet, se não for mais usá-lo FECHE! (commit na transação)
é isso!
T+
O clientDataSet deve estar ´ligado´ ao IBQuery e não ao IBDataSet
Apenas defina o SQL da Query e ligue o Provider a Query e o CDS ao Provider, então abra o CDS.
Quando desejar alterar um registro do CDS pegue o código do registro selecionado e jogue no Where do IBDataSet, abrindo no IBDataSet todos os dados daquele registro.
Ao terminar a alteração no IBDataSet (after post?) copie as informações do IBDataSet para o registro do CDS (Edit ... Post)
Se o usuário pedir NOVO, abra o IBDataSet sem registros (WHERE CODIGO=0 ?) e dê um Append nele, quando o usuário gravar (After post ?) dê um append no CDS e copie os registros do IBDataSet para ele.
Sempre depois que coiar os registros do IBDataSet, se não for mais usá-lo FECHE! (commit na transação)
é isso!
T+
GOSTEI 0
Marcos Fernando
27/09/2005
Ok mestre deu certinho do jeito que eu queria,,,
Grato mesmo
Grato mesmo
GOSTEI 0