[firebase-br] Erro Sql-Overflow occurred during data type conversion.
Juliano Van Dal
julianovandal em yahoo.com.br
Sex Abr 28 16:38:19 -03 2006
Boa tarde!
estou fazendo uma conversão de dados dentro do meu sistema (para transferir da DBF para FBD). E acontece o seguinte erro quando tento executar a Zquery:
CONVERSION ERROR FROM STRING'"'. Error Code: -413. Overflow occurred during data type conversion.
1) O que pode estar gerando este erro?
2) Em que casos eu devo, ou não devo utilizar a função: QuotedStr( ); ?
3) Devo usar INTEGER para os campos ID (como ja estou usando), ou SMALLINTEGER?
segue abaixo a procedure, e o script da base que criei:
Agradeço contibuições dos mestres!!!
procedure TFm_ConverteBase.Bbtn_Conv_ProdClick(Sender: TObject);
begin
Dm.Tb_Prod.First;
DmFb.ZQrProdutos.Close;
WHILE NOT DM.Tb_Prod.Eof DO BEGIN
WITH DmFb.ZQrProdutos DO BEGIN
SQL.Clear;
SQL.Append('Select * From PRODUTOS');
SQL.Append('Where Codigo ='+DM.Tb_ProdCODIGO.AsString);
Open;
IF IsEmpty THEN BEGIN
Close;
SQL.Clear;
SQL.Append('Insert Into PRODUTOS');
SQL.Append('(Codigo,CodDescr,CodFbrProd,CodFbrVeic,CodUnidade,CodPratel');
SQL.Append(',PratelComp,Aplicacao,Referencia,NumOrigin,EstoqueMin,EstoqueMax');
SQL.Append(',Margem,DescontoAv,Custo,DtAtlPrcVd,FornecCust,PrecoVenda,CodBar');
SQL.Append(',Similar,Barros)');
SQL.Append('VALUES');
SQL.Append('( '+QuotedStr(DM.Tb_ProdCODIGO.AsString));
SQL.Append(', '+QuotedStr(DM.Tb_ProdCODDESCR.AsString));
SQL.Append(', '+QuotedStr(DM.Tb_ProdCODFBRPROD.AsString));
SQL.Append(', '+QuotedStr(DM.Tb_ProdCODFBRVEIC.AsString) );
SQL.Append(', '+QuotedStr(DM.Tb_ProdCODUNIDADE.AsString ));
SQL.Append(', '+QuotedStr(DM.Tb_ProdCODPRATEL.AsString ));
SQL.Append(', '+QuotedStr(DM.Tb_ProdPRATELCOMP.AsString ));
SQL.Append(', '+QuotedStr(DM.Tb_ProdAPLICACAO.AsString ));
SQL.Append(', '+QuotedStr(DM.Tb_ProdREFERENCIA.AsString ));
SQL.Append(', '+QuotedStr(DM.Tb_ProdNUMORIGIN.AsString ));
SQL.Append(', '+QuotedStr(DM.Tb_ProdESTOQUEMIN.AsString ));
SQL.Append(', '+QuotedStr(DM.Tb_ProdESTOQUEMAX.AsString ));
SQL.Append(', '+QuotedStr(DM.Tb_ProdMARGEM.AsString ));
SQL.Append(', '+QuotedStr(DM.Tb_ProdDESCONTOAV.AsString ));
SQL.Append(', '+QuotedStr(DM.Tb_ProdCUSTO.AsString ));
SQL.Append(', '+QuotedStr(DM.Tb_ProdDTATLPRCVD.AsString ));
SQL.Append(', '+QuotedStr(DM.Tb_ProdFORNECCUST.AsString ));
SQL.Append(', '+QuotedStr(DM.Tb_ProdPRECOVENDA.AsString ));
SQL.Append(', '+QuotedStr(DM.Tb_ProdCODBAR.AsString ));
SQL.Append(', '+QuotedStr(DM.Tb_ProdSIMILAR.AsString ));
SQL.Append(', '+QuotedStr(DM.Tb_ProdBARROS.AsString )+')');
ExecSQL;
END;
DM.TB_PROD.Next;
Close;
END;
end;
end;
CREATE TABLE PRODUTOS (
CODIGO INTEGER NOT NULL,
CODDESCR INTEGER NOT NULL,
CODFBRPROD INTEGER NOT NULL,
CODFBRVEIC INTEGER NOT NULL,
CODUNIDADE INTEGER NOT NULL,
CODPRATEL INTEGER,
PRATELCOMP VARCHAR(10) COLLATE PXW_INTL850,
APLICACAO VARCHAR(60) NOT NULL COLLATE PXW_INTL850,
REFERENCIA VARCHAR(16) NOT NULL COLLATE PXW_INTL850,
NUMORIGIN VARCHAR(16) COLLATE PXW_INTL850,
ESTOQUEMIN INTEGER,
ESTOQUEMAX INTEGER,
MARGEM PORCENTAGEM /* PORCENTAGEM = NUMERIC(5,2) */,
DESCONTOAV PORCENTAGEM /* PORCENTAGEM = NUMERIC(5,2) */,
CUSTO MOEDA /* MOEDA = NUMERIC(13,2) */,
DTATLPRCVD VARCHAR(5) COLLATE PXW_INTL850,
FORNECCUST VARCHAR(40) COLLATE PXW_INTL850,
PRECOVENDA MOEDA /* MOEDA = NUMERIC(13,2) */,
CODBAR VARCHAR(16) COLLATE PXW_INTL850,
SIMILAR INTEGER,
BARROS VARCHAR(10) COLLATE PXW_INTL850
);
__________________________________________________
Faça ligações para outros computadores com o novo Yahoo! Messenger
http://br.beta.messenger.yahoo.com/
Mais detalhes sobre a lista de discussão lista