Importar arquivo.txt
Boa Tarde
Estou usando o Delphi 7 + Fire Bird 2.0
Tenho um arquivo chamado cad_cliente.txt, o mesmo contem informaçãoes de posições definidas, preciso importar o arquivo para uma tabela do banco e gravar as informações, no exemplo que estou passando o arquivo contem 5 linhas mas somente a ultima linha grava na tabela no banco. Segue abaixo
// Arquivo
000001FCIA. DO IPAM LTDA
000002ASSOCIACAO EDUCADORA SAO CARLOS
000003DROG MAIS ECONOMICA LTDA
000004DROG MAIS ECONOMICA LTDA
000005DROG MAIS ECONOMICA LTDA
000006DROG MAIS ECONOMICA LTDA
000007DROG CAPILE LTDA
000008FCIA. DO IPAM LTDA
000009DROG MAIS ECONOMICA LTDA
000010DROG MAIS ECONOMICA LTDA
// Código
procedure TForm1.BitBtn1Click(Sender: TObject);
var
fArq : TextFile; // tipo texto
Caminho : String; // armazena o caminho
Linha : String; // lê a linha do tipo texto
mTexto : TStringList;
i : Integer; //utilizada no contador de linhas
begin
Caminho := Edit1.Text; // variavel recebe os dados do edit
AssignFile(fArq,Caminho);
Reset(fArq);
mTexto := TStringList.Create;
mTexto.LoadFromFile(Caminho);
ProgressBar1.Max :=mTexto.Count - 1;
i := 0;
mTexto.Free;
while not Eof(fArq) do // faça enquanto não chegar ao fim do arquivo
begin
Application.ProcessMessages;
Readln(fArq, linha); // leia o texto e a linha
//ClientDataSet1.Params.ParamByName(´CODIGO´).AsString := Trim(copy(Linha,1,6)); // buscando pelo parâmetro código
ClientDataSet1.Open; // abrindo a tabela
if ClientDataSet1.IsEmpty then // se a tabela estiver vazia
ClientDataSet1.Append // insira os arquivos lidos
else // senao
ClientDataSet1.edit; // edite e atualize
// aqui os campos recebem as linhas lidas
ClientDataSet1CODIGO.AsString := Trim(copy(Linha,1,6));
ClientDataSet1NOME.AsString := Trim(copy(Linha,7,32));
ClientDataSet1.Post; // salva
ClientDataSet1.ApplyUpdates(0); //atualiza no banco
ClientDataSet1.Close; // fecha a tabela
Inc(i);
ProgressBar1.Position := ProgressBar1.Position + 1;
Next;
End;
MessageBeep(65);
ShowMessage(´Processo Concluído com êxito´);
ClientDataSet1.Open;
ProgressBar1.Position :=0;
end;
end.
A linha abaixo esta comentada no código pois qd compilo o pragrama da erro nessa linha, após comentar a linha o programa compila e roda normal, mas não grava todas as informações.
//ClientDataSet1.Params.ParamByName(´CODIGO´).AsString := Trim(copy(Linha,1,6)); // buscando pelo parâmetro código
Desde já agradeço pela atenção de todos.
Estou usando o Delphi 7 + Fire Bird 2.0
Tenho um arquivo chamado cad_cliente.txt, o mesmo contem informaçãoes de posições definidas, preciso importar o arquivo para uma tabela do banco e gravar as informações, no exemplo que estou passando o arquivo contem 5 linhas mas somente a ultima linha grava na tabela no banco. Segue abaixo
// Arquivo
000001FCIA. DO IPAM LTDA
000002ASSOCIACAO EDUCADORA SAO CARLOS
000003DROG MAIS ECONOMICA LTDA
000004DROG MAIS ECONOMICA LTDA
000005DROG MAIS ECONOMICA LTDA
000006DROG MAIS ECONOMICA LTDA
000007DROG CAPILE LTDA
000008FCIA. DO IPAM LTDA
000009DROG MAIS ECONOMICA LTDA
000010DROG MAIS ECONOMICA LTDA
// Código
procedure TForm1.BitBtn1Click(Sender: TObject);
var
fArq : TextFile; // tipo texto
Caminho : String; // armazena o caminho
Linha : String; // lê a linha do tipo texto
mTexto : TStringList;
i : Integer; //utilizada no contador de linhas
begin
Caminho := Edit1.Text; // variavel recebe os dados do edit
AssignFile(fArq,Caminho);
Reset(fArq);
mTexto := TStringList.Create;
mTexto.LoadFromFile(Caminho);
ProgressBar1.Max :=mTexto.Count - 1;
i := 0;
mTexto.Free;
while not Eof(fArq) do // faça enquanto não chegar ao fim do arquivo
begin
Application.ProcessMessages;
Readln(fArq, linha); // leia o texto e a linha
//ClientDataSet1.Params.ParamByName(´CODIGO´).AsString := Trim(copy(Linha,1,6)); // buscando pelo parâmetro código
ClientDataSet1.Open; // abrindo a tabela
if ClientDataSet1.IsEmpty then // se a tabela estiver vazia
ClientDataSet1.Append // insira os arquivos lidos
else // senao
ClientDataSet1.edit; // edite e atualize
// aqui os campos recebem as linhas lidas
ClientDataSet1CODIGO.AsString := Trim(copy(Linha,1,6));
ClientDataSet1NOME.AsString := Trim(copy(Linha,7,32));
ClientDataSet1.Post; // salva
ClientDataSet1.ApplyUpdates(0); //atualiza no banco
ClientDataSet1.Close; // fecha a tabela
Inc(i);
ProgressBar1.Position := ProgressBar1.Position + 1;
Next;
End;
MessageBeep(65);
ShowMessage(´Processo Concluído com êxito´);
ClientDataSet1.Open;
ProgressBar1.Position :=0;
end;
end.
A linha abaixo esta comentada no código pois qd compilo o pragrama da erro nessa linha, após comentar a linha o programa compila e roda normal, mas não grava todas as informações.
//ClientDataSet1.Params.ParamByName(´CODIGO´).AsString := Trim(copy(Linha,1,6)); // buscando pelo parâmetro código
Desde já agradeço pela atenção de todos.
Preto_filho
Curtidas 0
Respostas
Altingon
30/06/2008
Escreva aqui a mensagem de erro, ajuda bastante...
GOSTEI 0
Preto_filho
30/06/2008
Quando eu clico no botão importar da a seguinte mensagem.
´CLIENTDATASET1: parameter ´CODIGO´ not found.
fora esse erro que estou enviando, porque quando importo o arquivo apenas o ultimo registro do arquivo grava na tabela no banco.
Grato pela atenção.
´CLIENTDATASET1: parameter ´CODIGO´ not found.
fora esse erro que estou enviando, porque quando importo o arquivo apenas o ultimo registro do arquivo grava na tabela no banco.
Grato pela atenção.
GOSTEI 0
Altingon
30/06/2008
Você esta com problema no seu sql.... ele deve ficar mais ou menos assim: ´select * from tabela where codigo = :codigo´ esse é o jeito de passar por parametro
Antes de passar o parametro feche o ClientDataSet
Valeu
Antes de passar o parametro feche o ClientDataSet
Valeu
GOSTEI 0
Preto_filho
30/06/2008
É por esse motivo que não esta gravando todos os registro na tabela no banco ?
Grato pela atenção de todos.
Grato pela atenção de todos.
GOSTEI 0
Emerson Nascimento
30/06/2008
deve ser algo mais ou menos assim:
procedure TForm1.BitBtn1Click(Sender: TObject); var fArq: TextFile; // tipo texto Caminho: String; // armazena o caminho Linha: String; // lê a linha do tipo texto mTexto: TStringList; begin Caminho := Edit1.Text; // variavel recebe os dados do edit AssignFile(fArq,Caminho); Reset(fArq); mTexto := TStringList.Create; mTexto.LoadFromFile(Caminho); ProgressBar1.Max := mTexto.Count - 1; mTexto.Free; // fecha a tabela e atribui a instrução sql ClientDataSet1.Close; ClientDataSet1.CommandText := ´select * from tabela where codigo = :codigo ´; while not Eof(fArq) do // faça enquanto não chegar ao fim do arquivo begin Application.ProcessMessages; Readln(fArq, linha); // lê a linha e joga o conteúdo na variável linha // buscando pelo parâmetro código ClientDataSet1.Close; // fechando a tabela ClientDataSet1.Params.ParamByName(´CODIGO´).AsString := Trim(copy(Linha,1,6)); ClientDataSet1.Open; // abrindo a tabela if ClientDataSet1.IsEmpty then // se a tabela estiver vazia begin ClientDataSet1.Append; // insira um registro vazio ClientDataSet1CODIGO.AsString := Trim(copy(Linha,1,6)); end else // senao ClientDataSet1.edit; // edita o registro encontrado // aqui os campos recebem os valores lidos ClientDataSet1NOME.AsString := Trim(copy(Linha,7,32)); ClientDataSet1.Post; // salva ClientDataSet1.ApplyUpdates(0); //atualiza no banco ProgressBar1.Position := ProgressBar1.Position + 1; end; MessageBeep(65); ShowMessage(´Processo Concluído com êxito´); ProgressBar1.Position := 0; ClientDataSet1.Close; // fecha a tabela end;
GOSTEI 0
Preto_filho
30/06/2008
Bom Dia
Ai emersom.en, fiz como vc comentou, mas quando eu no botão para importar o arquivo da a seguinte mensagem de erro.
´ CommandText Changes are not alowed ´
Grato pela atenção de todos.
Ai emersom.en, fiz como vc comentou, mas quando eu no botão para importar o arquivo da a seguinte mensagem de erro.
´ CommandText Changes are not alowed ´
Grato pela atenção de todos.
GOSTEI 0
Emerson Nascimento
30/06/2008
adicione o item poAllowCommandText à propriedade Options do seu DatasetProvider.
GOSTEI 0
Preto_filho
30/06/2008
ae emerson.en, setei para ´TRUE´ conforme vc informou, mas agora esta dando outro error.
Table unknown
TABELA
At line 1 , column 22.
Grato pela atenção .
Table unknown
TABELA
At line 1 , column 22.
Grato pela atenção .
GOSTEI 0
Emerson Nascimento
30/06/2008
ô meu filho... troque TABELA pelo nome da sua tabela.
aquilo foi somente pra você saber como montar a instrução.
se sua tabela é CLIENTE, a instrução deve ser:
select * from cliente where codigo = :codigo
aquilo foi somente pra você saber como montar a instrução.
se sua tabela é CLIENTE, a instrução deve ser:
select * from cliente where codigo = :codigo
GOSTEI 0
Preto_filho
30/06/2008
Bom Dia
Ai emerson.en bl ?
acabei me descuidando no nome da tabela, mas já esta funcionado,
mas acabei ficando com outra duvida, sempre que importo um arquivo no GRID, retorna sempre o ultimo registro do arquivo.
ae se eu fechar o programa e abrir novamente retorna todos os registros do arquivo.
Dese já agradeço pela atenção .
Ai emerson.en bl ?
acabei me descuidando no nome da tabela, mas já esta funcionado,
mas acabei ficando com outra duvida, sempre que importo um arquivo no GRID, retorna sempre o ultimo registro do arquivo.
ae se eu fechar o programa e abrir novamente retorna todos os registros do arquivo.
Dese já agradeço pela atenção .
GOSTEI 0
Preto_filho
30/06/2008
Já resolvi, fiz um select para retornar os campos.
Mas gerou outra duvida,
no final do arquivo eu estou jogando uma mensagem na tela, nessa mesma mensagem gostaria de mostrar o total de registros no arquivo.
Grato pela atenção.
Mas gerou outra duvida,
no final do arquivo eu estou jogando uma mensagem na tela, nessa mesma mensagem gostaria de mostrar o total de registros no arquivo.
Grato pela atenção.
GOSTEI 0
Altingon
30/06/2008
Você pode fazer um contador.
var
i:integer;
depois do ClientDataSet1.Post; vc coloca inc(i);
Espero ter ajudado
var
i:integer;
depois do ClientDataSet1.Post; vc coloca inc(i);
Espero ter ajudado
GOSTEI 0
Emerson Nascimento
30/06/2008
o total de registros não é o mesmo valor em ProgressBar1.Max?
GOSTEI 0
Preto_filho
30/06/2008
Pessoal já resolvi.
Agora é o seguinte, tenho um botão para cancelar a operação de importação, por exemplo , o arquivo já esta sendo importado, mas no meio da importação preciso cancelar, como devo fazer?
Desde já agradeço pela atenção de todos.
Agora é o seguinte, tenho um botão para cancelar a operação de importação, por exemplo , o arquivo já esta sendo importado, mas no meio da importação preciso cancelar, como devo fazer?
Desde já agradeço pela atenção de todos.
GOSTEI 0
Comodelphi
30/06/2008
uma Thread resolve, da uma pesquisada no fórum deve ter uma penca de tópicos.
abcs
abcs
GOSTEI 0
Emerson Nascimento
30/06/2008
mas como você quer fazer?
ao pressionar cancelar somente pára a importação, ou cancela também os registros que já foram processados?
ao pressionar cancelar somente pára a importação, ou cancela também os registros que já foram processados?
GOSTEI 0
Preto_filho
30/06/2008
Bom Dia
Ai emerson.en bl ?
Tem como vc me mostrar as duas formas .
Desde já agradeço pela atenção de todos
Ai emerson.en bl ?
Tem como vc me mostrar as duas formas .
Desde já agradeço pela atenção de todos
GOSTEI 0
Emerson Nascimento
30/06/2008
como você não publicou o seu procedimento corrigido, vou me basear naquele que eu te passei...
cancelando pela ´metade´...
no código do botão coloque algo como:
cancelando pela ´metade´...
procedure TForm1.BitBtn1Click(Sender: TObject); var fArq: TextFile; // tipo texto Caminho: String; // armazena o caminho Linha: String; // lê a linha do tipo texto mTexto: TStringList; begin Caminho := Edit1.Text; // variavel recebe os dados do edit AssignFile(fArq,Caminho); Reset(fArq); mTexto := TStringList.Create; mTexto.LoadFromFile(Caminho); ProgressBar1.Max := mTexto.Count - 1; mTexto.Free; lCancelou := False; // variável private // fecha a tabela e atribui a instrução sql ClientDataSet1.Close; ClientDataSet1.CommandText := ´select * from tabela where codigo = :codigo ´; // faça enquanto não chegar ao fim do arquivo e não for cancelado pelo usuário while not Eof(fArq) and not lCancelou do begin Application.ProcessMessages; Readln(fArq, linha); // lê a linha e joga o conteúdo na variável linha // buscando pelo parâmetro código ClientDataSet1.Close; // fechando a tabela ClientDataSet1.Params.ParamByName(´CODIGO´).AsString := Trim(copy(Linha,1,6)); ClientDataSet1.Open; // abrindo a tabela if ClientDataSet1.IsEmpty then // se a tabela estiver vazia begin ClientDataSet1.Append; // insira um registro vazio ClientDataSet1CODIGO.AsString := Trim(copy(Linha,1,6)); end else // senao ClientDataSet1.edit; // edita o registro encontrado // aqui os campos recebem os valores lidos ClientDataSet1NOME.AsString := Trim(copy(Linha,7,32)); ClientDataSet1.Post; // salva ClientDataSet1.ApplyUpdates(0); //atualiza no banco ProgressBar1.Position := ProgressBar1.Position + 1; end; MessageBeep(65); if not lCancelou then ShowMessage(´Processo Concluído com êxito´) else ShowMessage( Format(´Processo CANCELADO pelo usuário.´#13´Foram processados ¬d registros de um total de ¬d´, [ProgressBar1.Position, ProgressBar1.Max])); ProgressBar1.Position := 0; ClientDataSet1.Close; // fecha a tabela end;
no código do botão coloque algo como:
procedure TForm1.ButtonCancelarClick(Sender: TObject); begin lCancelou := Application.MessageBox(´Deseja realmente cancelar a importação?´, ´Cancelar´, mb_TaskModal + mb_IconQuestion + mb_YesNo) = mrYes; end;
GOSTEI 0
Preto_filho
30/06/2008
Bom Dia
emerson.en ai bl ? a variavel lcancelou é e que tipo ?
o que vai fazer o código, qd cancelar , vai apenas cancelar a importação e deixar gravado até o momento que foi cancelado , ou vai cancelar toda a importação .
Grato pela atenção.
procedure TForm1.BitBtn1Click(Sender: TObject);
var
fArq : TextFile; // tipo texto
Caminho : String; // armazena o caminho
Linha : String; // lê a linha do tipo texto
mTexto : TStringList;
i : Integer; //utilizada no contador de linhas
begin
Caminho := Edit1.Text; // variavel recebe os dados do edit
AssignFile(fArq,Caminho);
Reset(fArq);
mTexto := TStringList.Create;
mTexto.LoadFromFile(Caminho);
//ProgressBar1.Max := mTexto.Count - 1;
Gauge1.Visible := True;
Gauge1.MaxValue := mTexto.Count -1;
mTexto.Free;
Label2.Visible := False;
// fecha a tabela e atribui a instrução sql
ClientDataSet1.Close;
ClientDataSet1.CommandText := ´select * from ATENDIMENTO where codigo = :codigo ´;
while not Eof(fArq) do // faça enquanto não chegar ao fim do arquivo
begin
Application.ProcessMessages;
Readln(fArq, linha); // lê a linha e joga o conteúdo na variável linha
// buscando pelo parâmetro código
ClientDataSet1.Close; // fechando a tabela
ClientDataSet1.Params.ParamByName(´CODIGO´).AsString := Trim(copy(Linha,1,6));
ClientDataSet1.Open; // abrindo a tabela
if ClientDataSet1.IsEmpty then // se a tabela estiver vazia
begin
ClientDataSet1.Append; // insira um registro vazio
ClientDataSet1CODIGO.AsString := Trim(copy(Linha,1,6));
end
else // senao
ClientDataSet1.edit; // edita o registro encontrado
// aqui os campos recebem os valores lidos
ClientDataSet1RAZAO_SOCIAL.AsString := Trim(copy(Linha,7,49));
ClientDataSet1CNPJ.AsString := Trim(copy(Linha,57,13));
ClientDataSet1IE.AsString := Trim(copy(Linha,70,19));
ClientDataSet1ENDERECO.AsString := Trim(copy(Linha,90,75));
ClientDataSet1CIDADE.AsString := Trim(copy(Linha,166,29));
ClientDataSet1CEP.AsString := Trim(copy(Linha,197,8));
ClientDataSet1UF.AsString := Trim(copy(Linha,205,02));
ClientDataSet1BAIRRO.AsString := Trim(copy(Linha,207,24));
ClientDataSet1REDE_ASSOC.AsString := Trim(copy(Linha,232,02));
ClientDataSet1COD_REDE.AsString := Trim(copy(Linha,234,06));
ClientDataSet1RZ_SOCIAL_REDE.AsString := Trim(copy(Linha,240,24));
ClientDataSet1COD_ASSOC.AsString := Trim(copy(Linha,265,06));
ClientDataSet1RZ_SOCIAL_ASSOC.AsString := Trim(copy(Linha,271,20));
ClientDataSet1.Post; // salva
ClientDataSet1.ApplyUpdates(0); //atualiza no banco
//ProgressBar1.Position := ProgressBar1.Position + 1;
Gauge1.Progress := Gauge1.Progress + 1;
end;
MessageBeep(65);
ShowMessage(´Processo Concluído com êxito´);
//ProgressBar1.Position := 0;
Gauge1.Progress := 0;
with ClientDataSet1 do
begin
Close;
CommandText := ´select * from ATENDIMENTO´;
Open;
end;
Label2.Visible := True;
Label2.Caption := IntToStr(ClientDataSet1.RecordCount);
Gauge1.Visible := False;
end;
emerson.en ai bl ? a variavel lcancelou é e que tipo ?
o que vai fazer o código, qd cancelar , vai apenas cancelar a importação e deixar gravado até o momento que foi cancelado , ou vai cancelar toda a importação .
Grato pela atenção.
procedure TForm1.BitBtn1Click(Sender: TObject);
var
fArq : TextFile; // tipo texto
Caminho : String; // armazena o caminho
Linha : String; // lê a linha do tipo texto
mTexto : TStringList;
i : Integer; //utilizada no contador de linhas
begin
Caminho := Edit1.Text; // variavel recebe os dados do edit
AssignFile(fArq,Caminho);
Reset(fArq);
mTexto := TStringList.Create;
mTexto.LoadFromFile(Caminho);
//ProgressBar1.Max := mTexto.Count - 1;
Gauge1.Visible := True;
Gauge1.MaxValue := mTexto.Count -1;
mTexto.Free;
Label2.Visible := False;
// fecha a tabela e atribui a instrução sql
ClientDataSet1.Close;
ClientDataSet1.CommandText := ´select * from ATENDIMENTO where codigo = :codigo ´;
while not Eof(fArq) do // faça enquanto não chegar ao fim do arquivo
begin
Application.ProcessMessages;
Readln(fArq, linha); // lê a linha e joga o conteúdo na variável linha
// buscando pelo parâmetro código
ClientDataSet1.Close; // fechando a tabela
ClientDataSet1.Params.ParamByName(´CODIGO´).AsString := Trim(copy(Linha,1,6));
ClientDataSet1.Open; // abrindo a tabela
if ClientDataSet1.IsEmpty then // se a tabela estiver vazia
begin
ClientDataSet1.Append; // insira um registro vazio
ClientDataSet1CODIGO.AsString := Trim(copy(Linha,1,6));
end
else // senao
ClientDataSet1.edit; // edita o registro encontrado
// aqui os campos recebem os valores lidos
ClientDataSet1RAZAO_SOCIAL.AsString := Trim(copy(Linha,7,49));
ClientDataSet1CNPJ.AsString := Trim(copy(Linha,57,13));
ClientDataSet1IE.AsString := Trim(copy(Linha,70,19));
ClientDataSet1ENDERECO.AsString := Trim(copy(Linha,90,75));
ClientDataSet1CIDADE.AsString := Trim(copy(Linha,166,29));
ClientDataSet1CEP.AsString := Trim(copy(Linha,197,8));
ClientDataSet1UF.AsString := Trim(copy(Linha,205,02));
ClientDataSet1BAIRRO.AsString := Trim(copy(Linha,207,24));
ClientDataSet1REDE_ASSOC.AsString := Trim(copy(Linha,232,02));
ClientDataSet1COD_REDE.AsString := Trim(copy(Linha,234,06));
ClientDataSet1RZ_SOCIAL_REDE.AsString := Trim(copy(Linha,240,24));
ClientDataSet1COD_ASSOC.AsString := Trim(copy(Linha,265,06));
ClientDataSet1RZ_SOCIAL_ASSOC.AsString := Trim(copy(Linha,271,20));
ClientDataSet1.Post; // salva
ClientDataSet1.ApplyUpdates(0); //atualiza no banco
//ProgressBar1.Position := ProgressBar1.Position + 1;
Gauge1.Progress := Gauge1.Progress + 1;
end;
MessageBeep(65);
ShowMessage(´Processo Concluído com êxito´);
//ProgressBar1.Position := 0;
Gauge1.Progress := 0;
with ClientDataSet1 do
begin
Close;
CommandText := ´select * from ATENDIMENTO´;
Open;
end;
Label2.Visible := True;
Label2.Caption := IntToStr(ClientDataSet1.RecordCount);
Gauge1.Visible := False;
end;
GOSTEI 0
Emerson Nascimento
30/06/2008
pela linha da atribuição - lCancelou := False; - você consegue saber qual é o tipo da variável (obviamente, boolean).
o procedimento, da forma que foi passado, pára a importação, mas mantém o que for importado até o momento do pressionamento do botão.
o procedimento, da forma que foi passado, pára a importação, mas mantém o que for importado até o momento do pressionamento do botão.
GOSTEI 0
Preto_filho
30/06/2008
Boa Tarde
Ai emerson.en bl ?
Até agora suas dicas estão sendo show de bola.
Agora estou realizando uma pesquisa em uma tabela com 18.000,00 mil registros, caso eu busque pelo código digitando os 6 digitos retorna certinho, mas no meu caso na tabela tem muitos códigos que iniciam com zeros a esquerda, nesse caso o meu código não retorna nada, sobi a mensagem código não encontrado.
procedure TForm2.Button2Click(Sender: TObject);
begin
if Edit3 .Text<>´´then
begin
if not ClientDataSet1.Locate(´CODIGO´,StrToInt(Edit3 .Text),[]) then
ShowMessage(´Código Não encontrado!´)
end
else
ClientDataSet1.First;
Edit3.Text:=´´;
Edit3.SetFocus;
end;
Desde já agradeço pela atenção.
Ai emerson.en bl ?
Até agora suas dicas estão sendo show de bola.
Agora estou realizando uma pesquisa em uma tabela com 18.000,00 mil registros, caso eu busque pelo código digitando os 6 digitos retorna certinho, mas no meu caso na tabela tem muitos códigos que iniciam com zeros a esquerda, nesse caso o meu código não retorna nada, sobi a mensagem código não encontrado.
procedure TForm2.Button2Click(Sender: TObject);
begin
if Edit3 .Text<>´´then
begin
if not ClientDataSet1.Locate(´CODIGO´,StrToInt(Edit3 .Text),[]) then
ShowMessage(´Código Não encontrado!´)
end
else
ClientDataSet1.First;
Edit3.Text:=´´;
Edit3.SetFocus;
end;
Desde já agradeço pela atenção.
GOSTEI 0
Emerson Nascimento
30/06/2008
antes de fazer a busca, coloque os zeros à esquerda no valor que vocÊ quer procurar. assim:
adicione a unit StrUtils à cláusula uses.
procedure TForm2.Button2Click(Sender: TObject); begin if Edit3.Text <> ´´ then begin Edit3.Text := RightStr(´000000´+Trim(Edit3.Text),6); if not ClientDataSet1.Locate(´CODIGO´,Edit3.Text,[]) then ShowMessage(´Código Não encontrado!´); end else ClientDataSet1.First; Edit3.SetFocus; end;
adicione a unit StrUtils à cláusula uses.
GOSTEI 0
Preto_filho
30/06/2008
Bom Dia
Ai emerson.en bl ?
Novamente Show de bola sua dica.
Kra, agora que não tenho idéia de como agir, tenho uma tabela de cliente e uma tabela de produtos.
O que preciso fazer é o seguinte : preciso criar outra tabela por exemplo ´chamado´ nesta tabela preciso digitar o código do cliente em um edit e ao clicar no botão preencher o outro edit com a Razão Social do cliente + endereço + UF, esses dados estão na tabela de cliente.
como faço para gravar as informações nessa nova tabela ´CHAMADO´.
Desde já agradeço pela sua atenção.
Ai emerson.en bl ?
Novamente Show de bola sua dica.
Kra, agora que não tenho idéia de como agir, tenho uma tabela de cliente e uma tabela de produtos.
O que preciso fazer é o seguinte : preciso criar outra tabela por exemplo ´chamado´ nesta tabela preciso digitar o código do cliente em um edit e ao clicar no botão preencher o outro edit com a Razão Social do cliente + endereço + UF, esses dados estão na tabela de cliente.
como faço para gravar as informações nessa nova tabela ´CHAMADO´.
Desde já agradeço pela sua atenção.
GOSTEI 0
Preto_filho
30/06/2008
Bom Dia
Ai emerson.en bl ?
Novamente Show de bola sua dica.
Kra, agora que não tenho idéia de como agir, tenho uma tabela de cliente e uma tabela de produtos.
O que preciso fazer é o seguinte : preciso criar outra tabela por exemplo ´chamado´ nesta tabela preciso digitar o código do cliente em um edit e ao clicar no botão preencher o outro edit com a Razão Social do cliente + endereço + UF, esses dados estão na tabela de cliente.
como faço para gravar as informações nessa nova tabela ´CHAMADO´.
Obs: na tabela chamado tenho outros campos que prencho manualmente, por exemplo data, e outras informações, o campos CODIGO e FK é da tabela de clientes.
Desde já agradeço pela sua atenção.
Ai emerson.en bl ?
Novamente Show de bola sua dica.
Kra, agora que não tenho idéia de como agir, tenho uma tabela de cliente e uma tabela de produtos.
O que preciso fazer é o seguinte : preciso criar outra tabela por exemplo ´chamado´ nesta tabela preciso digitar o código do cliente em um edit e ao clicar no botão preencher o outro edit com a Razão Social do cliente + endereço + UF, esses dados estão na tabela de cliente.
como faço para gravar as informações nessa nova tabela ´CHAMADO´.
Obs: na tabela chamado tenho outros campos que prencho manualmente, por exemplo data, e outras informações, o campos CODIGO e FK é da tabela de clientes.
Desde já agradeço pela sua atenção.
GOSTEI 0