Estuve probando con la sugerencia de Caral, más que nada pq me pareció más acequible para escribir grandes instrucciones SQL, me parece que puedes hacer todo más ordenado, pero ahora me dá el fallo:
Violation of PRIMARY or UNIQUE KEY constraint "PKFICHAS" on Table "FICHAS"
Mi código está así:
procedure TForm1.BGuardarClick(Sender: TObject);
Var
fecha : TDateTime;
begin
IBQueryCarga_Fichas.Last;
fecha:=EncodeDateTime(2012, 04, 24, 00, 00, 00, 000);
IBQueryGuardar.SQL.Text:='Insert into Fichas (id_ficha,id_cliente,titulo,fecha_entrega,creador,'+
'prioridad,departamento, tipo_fallo,version) '+
' Values ( :idficha, :idClient, :tit, :Fehc, :crea, :prio, :dep, :tipo, :vers )';
IBQueryGuardar.Params[0].Value:= 2;
IBQueryGuardar.Params[1].Value:= 1;
IBQueryGuardar.Params[2].Value:= 'Segunda Ficha';
IBQueryGuardar.Params[3].Value:= DateToStr(fecha);
IBQueryGuardar.Params[4].Value:= 1;
IBQueryGuardar.Params[5].Value:= 'Alta';
IBQueryGuardar.Params[6].Value:= 'Prueba';
IBQueryGuardar.Params[7].Value:= 'Error';
IBQueryGuardar.Params[8].Value:= 1.7;
IBQueryGuardar.ExecSQL;
end;
Cambié el IBQueryGuardar y puse en SQL la instrunción:
Insert into Fichas (id_ficha,id_cliente,titulo,fecha_entrega,creador,prioridad,departamento, tipo_fallo,version) Values ( :idficha, :idClient, :tit, :Fehc, :crea, :prio, :dep, :tipo, :vers );
En la propriedad Params del IBQueryGuardar me aparecen los parámetros en la orden correcta.
Mi base de datos tiene las tablas
Fichas,
Clientes y
Empleados.
Fichas tiene claves foráneas tanto de Clientes como de Empleados.
Me recomendaís cambiar la base de datos y poner TODO como varchar ?
O es algun otro tipo de fallo ?