Te sugiero en estos casos hacer un log de cada sentencia SQL que se ejecuta.
Veo que ya presentas los diferentes datos que se insertarán, pero no sabes exactamente que es lo que se envia a Firebird.
En este caso, parece que en algún lugar en el que se espera un entero se le entrega un string vacío. Esto no sabe como convertirlo, dado que no es un número.
Dicho esto, no es necesario entrecomillar los valores numéricos.
Código PHP:
$Comando ="insert into cuentas (codigo,nombre,cedula,direccion,perifact,barrio) values ( " . $cod_usu . " , '" . $nom_usu . "' , " . $ced_usu ." , '" . $dir_usu ."' , '" . $per_fac . "' , '" . $bar_usu . "' );"
$db = dbase_open('c:\windows\media\lec\factur2.dbf', 0); //PERMITE LA CONEXION CON LA TABLA DESEADA
if ($db)
{
$numero_registros = dbase_numrecords($db); //DETERMINA EL NUMERO DE REGISTROS DE LA TABLA
for ($i = 1; $i <= $numero_registros; $i++)
{
...
echo $cod_usu."\t";
echo $nom_usu."\t";
echo $ced_usu."\t";
****
echo $Comando "<br />";
****
...
Deberías obtener algo así:
Código SQL
[-]
insert into cuentas (codigo,nombre,cedula,direccion,perifact,barrio) values (1 , 'PEPITO' , 123456 , 'calle 1, 23' , 'Perifact' , 'Barrio' );