[firebase-br] Ajuda(Cannot edit Current row)
Reijanio Nunes Ribeiro
rnribeiro em gmail.com
Sex Mar 16 09:39:56 -03 2007
Bom dia pessoal gostaria de uma ajudinha de vc's pois estou c/ um problema,
criei um importador de tabelas no delphi pra importar txt, ate ai tudo bem.
a tabela tem esse metadata:
CREATE TABLE "IMPORTARTXT"
(
"CODIGO" INTEGER NOT NULL,
"DESCRICAO" VARCHAR(25),
"DESC_COMPLEM" VARCHAR(29),
"QTD_MIN" INTEGER,
"PRECO_VENDA" INTEGER,
"COD_PROC" INTEGER,
"PERC_RED_ICMS" INTEGER,
"PERC_IPI" INTEGER,
"CLASS_FISCAL" INTEGER,
"MODELO" VARCHAR(130),
"HIERARQ_PROD" VARCHAR(18),
"TERMINADOR" CHAR(1)
);
se no campo CODIGO coloco do tipo varchar(13) q é o tamanho do campo ele da
o erro *arithimetic overflow.........*
se coloco como esta ai ele importa mais qdo chega num determinado registro q
nuda a sequencia numerica de 00000xxxxxx, para 000xxxxxxx e diz q "*is not
valid integer value*"
(so lembrando esse campo codigo é tdodo numerica daforma q ta ai tipo
0000001201654 e quando chega nesse ponto 0003420011021 da essa mensage *"is
not valid......* n entendo pq e consigo baicar soaté o codigo anterior a
esse ai, depois de baixado os codigos aparecem na tabela sem os zeros e n
são *editaveis *qualquer alteração q tento fazer da a msg q diz * Cannot
edit current row* ou *Cannot delete current row* não entendo o q pode ser
isso ficaria muito grato se pudessem me ajudar.
e tbm se me desse uma dica de como posso deixar os numeros igual ao original
ou seja com esses zeros pois da forma q a tabela esta retira todos os zeros
a esquerda.
pra quem quiser ver como fiz no delphi e puder me dar uma força tai a
sintase:
procedure TF_importar.BitBtn1Click(Sender: TObject);
var
Txt: TextFile;
Entrada: string;
begin
BitBtn1.Enabled := False;
if opendialog1.Execute then
begin
F_Importar.ClientDataSet1.EmptyDataSet;//zera tabela
F_Importar.ClientDataSet1.Open;//abre tabela
AssignFile(Txt,(Opendialog1.FileName
){'c:\Estudo\Importar\Lista_13P_modelo'});
// Animate1.Visible := true;
// animate1.Active := true;
Reset(Txt);
while not Eoln(Txt) do
begin
ReadLn(Txt,Entrada);
F_Importar.ClientDataSet1.insert;
//showMessage('-'+copy(entrada,1,13)+'-');
F_Importar.ClientDataSet1.FieldByName('codigo').value
:=StrToInt(copy(entrada,01,13));
// showMessage('-'+copy(entrada,1,13)+'-');
F_Importar.ClientDataSet1.FieldByName('Descricao').Value
:=copy(entrada,14,25);
F_Importar.ClientDataSet1.FieldByName('desc_complem').Value :=
copy(entrada,39,29);
F_Importar.ClientDataSet1.FieldByName('qtd_min').value :=
copy(entrada,68,03);
F_Importar.ClientDataSet1.FieldByName('preco_venda').Value :=
copy(entrada,71,12);
F_Importar.ClientDataSet1.FieldByName('cod_proc').Value :=
copy(entrada,83,01);
F_Importar.ClientDataSet1.FieldByName('perc_red_icms').Value :=
StrToFloat(copy(entrada,84,02));
F_Importar.ClientDataSet1.FieldByName('perc_ipi').Value :=
StrToFloat(copy(entrada,86,04));
F_Importar.ClientDataSet1.FieldByName('class_fiscal').Value :=
copy(entrada,90,10);
F_Importar.ClientDataSet1.FieldByName('modelo').Value :=
copy(entrada,100,130);
F_Importar.ClientDataSet1.FieldByName('hierarq_prod').Value :=
copy(entrada,230,18);
F_Importar.ClientDataSet1.FieldByName('terminador').Value :=
copy(entrada,248,01);
F_Importar.ClientDataSet1.Post;
//NeatoMeter1.caption := 'Importando, Aguarde...'+ IntToStr(
ClientdataSet1.RecordCount);
end;
CloseFile(Txt);
//NeatoMeter1.Caption := 'Importação ralizada com sucesso...';
//NeatoMeter1.percent := 100;
BitBtn1.Enabled := true;
F_IMportar.Height := 205;
F_Importar.ClientHeight := 180;
label1.Visible := true;
label1.Caption := 'Foi importado um total de' +IntToStr(
clientDataSet1.RecordCount)+ 'Registros com sucesso';
Mais detalhes sobre a lista de discussão lista