[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