Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Conexión con bases de datos

 
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 02-07-2020
identsoft identsoft is offline
Miembro
 
Registrado: abr 2006
Posts: 282
Poder: 19
identsoft Va por buen camino
Error al insertar en bd con parametros

Un saludo para todos.
Al insertar datos en una tabla con sql y parámetros me da el error :'Assertion failure (c:\user\code\....\firebird.sql.pas, line 1004)'.
Lo que hago es :
1.-leer un fichero de texto plano con separador de campos('|').
2.-Separar cada campo para asignárselo a cada parámetro
3.- Insertarlo en la base de datos.

Código Delphi [-]
          Readln(f,slinea);
          SQLInsertar.Close;
          SQLInsertar.SQL.Clear;
          SQLInsertar.SQL.Text := 'INSERT INTO AGENTES (AGENTE,NOM_AGENTE,DIR_AGENTE,POB_AGENTE,' +
               'CPOS_AGENTE,TELEFONO1,FAX,PROVIN,OBSERVACIONES,POR_RETE,POR_COMIS, ' +
               'CTA_SUPLIDOS,CTA_CLIENTE)' +
               ' VALUES (:IAGENTE,:INOM_AGENTE,:IDIR_AGENTE,:IPOB_AGENTE, ' +
               ':ICPOS_AGENTE,:ITELEFONO1,:IFAX,:IPROVIN,:IOBSERVAC,:IPOR_RETE,:IPOR_COMIS, ' +
               ':ICTA_SUPLIDOS,:ICTA_CLIENTE)';
          SQLInsertar.ParamByName('IAGENTE').AsInteger := StrToInt(GetToken(slinea,'|',1));
          SQLInsertar.ParamByName('INOM_AGENTE').AsString := StringReplace(getToken(slinea,'|',2),',',' ',[rfReplaceAll]);
          SQLInsertar.ParamByName('IDIR_AGENTE').AsString := StringReplace(getToken(slinea,'|',3),',',' ',[rfReplaceAll]);
          SQLInsertar.ParamByName('IPOB_AGENTE').AsString := StringReplace(getToken(slinea,'|',4),',',' ',[rfReplaceAll]);
          SQLInsertar.ParamByName('ICPOS_AGENTE').AsInteger := StrToInt(getToken(slinea,'|',5));
          SQLInsertar.ParamByName('ITELEFONO1').AsString := getToken(slinea,'|',6);
          SQLInsertar.ParamByName('IFAX').AsString := getToken(slinea,'|',7);
          SQLInsertar.ParamByName('IPROVIN').AsInteger := StrToInt(getToken(slinea,'|',8));
          SQLInsertar.ParamByName('IOBSERVAC').AsString := getToken(slinea,'|',9);
          SQLInsertar.ParamByName('IPOR_RETE').AsFloat := StrToFloat(getToken(slinea,'|',10));
          SQLInsertar.ParamByName('IPOR_COMIS').AsFloat := StrToFloat(getToken(slinea,'|',11));
          SQLInsertar.ParamByName('ICTA_SUPLIDOS').AsString := getToken(slinea,'|',12);
          SQLInsertar.ParamByName('ICTA_CLIENTE').AsString := getToken(slinea,'|',13);
          SQLInsertar.ExecSQL;
          SQLInsertar.Close;
El error lo da al ejecutar la linea :SQLInserta.ExecSQL.

El tipo de parámetro (asinteger,..) es correcto( es decir coincide con el tipo de campo de la BD) y la separación de campos también lo hace bien.
GetToken es una función para separar campos.

Utilizo Dephi XE7 y Firebird 2.5 con Windows 10

Alguna idea?
Gracias por vuestro tiempo
Responder Con Cita
 



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Error de Parametros IBX Chaja Conexión con bases de datos 3 06-12-2010 04:12:04
Error En Los Parametros DISAC_FIGO Conexión con bases de datos 1 13-01-2007 20:27:34
error en parametros emeritos Conexión con bases de datos 9 11-12-2006 17:45:51
No puedo insertar datos (por parámetros) en una tabla - Zeos, Mysql belen MySQL 2 13-10-2006 00:16:51
error en parametros con ado redlyon13 Conexión con bases de datos 10 24-05-2004 01:32:22


La franja horaria es GMT +2. Ahora son las 13:13:56.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi