Falta información, suponemos que estás haciendo un bucle al leer de un fichero de texto.
Seguramente es una línea de ese fichero de texto que tiene datos que no son correctos.
Además, si es así, o sea, es un bucle, por lógica, ese código no debería ser así, sino así:
Código Delphi
[-]Q.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)';
Aquí bucle de lectura del fichero de texto
Readln(f,slinea);
Q.Close;
Q.ParamByName('IAGENTE').AsInteger := StrToInt(GetToken(slinea,'|',1));
Q.ParamByName('INOM_AGENTE').AsString := StringReplace(getToken(slinea,'|',2),',',' ',[rfReplaceAll]);
Q.ParamByName('IDIR_AGENTE').AsString := StringReplace(getToken(slinea,'|',3),',',' ',[rfReplaceAll]);
...
Q.ExecSQL;
fin del bucle.