PDA

Ver la Versión Completa : Trying to store a string... al hacer SELECT


Angel.Matilla
27-02-2017, 19:37:33
Estoy haciendo una búsqueda en una BB.DD. FB 2.5 con el siguiente query sobre un vista:
SELECT CodPrv, Codigo, Apellidos, Nombre, Referencia, Nif, Situacion,
Iban||Cuenta Cuenta, NomJun
FROM Ls01
WHERE CodPrv = (SELECT Literal FROM Instalacion WHERE Etiqueta = 'Provincia')
AND Nif LIKE :Nif
ORDER BY Apellidos, Nombre, Referencia, NomJunY lo hago así (sólo pongo el trozo en que me da error):
fPersona->Query->Close();
fPersona->Query->SQL->Clear();
if (!Apellidos->Text.IsEmpty())
{
}
if (!Nif->Text.IsEmpty())
{
fPersona->Query->SQL->Add("AND Nif LIKE :Nif");
fPersona->Query->ParamByName("Nif")->AsString = "%" + Nif->Text.Trim() + "%";
}
fPersona->Query->SQL->Add("ORDER BY Apellidos, Nombre, Referencia, NomJun");
fPersona->Query->SQL->Text = "SELECT CodPrv, Codigo, Apellidos, Nombre, Referencia, Nif, Situacion, Iban||Cuenta Cuenta, NomJun FROM Ls01 WHERE CodPrv = (SELECT Literal FROM Instalacion WHERE Etiqueta = 'Provincia') " + fPersona->Query->SQL->Text;En la tabla de la que lee la vista el campo NIF está defin¡ido como VARCHAR(11), lo que le da margen de sobra ya que en España son 8 cifras más una letra. Sin embargo si pongo simplemente los ocho dígitos SIN añadir la letra me da siempre el mismo error:
Trying to store a string of length 11 into a field that only contain 9
(Tratando de almacenar una cadena de longitud 11 en un campo que sólo contiene 9)El campo donde capturo la información es un TLabeledEdit con MaxLength igual a 11. Ese error me tiene perplejo y no sí por dónde pillarlo. ¿Algún consejo?

Angel.Matilla
27-02-2017, 19:40:23
Ya está arregaldo :mad: Era, simplemente, volver a generar la vista que usaba.

AgustinOrtu
27-02-2017, 19:41:18
Estas usando campos persistentes? Es decir, si tiempo de diseño tenes creados los campos