Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   Creando Consulta de alquiler (https://www.clubdelphi.com/foros/showthread.php?t=33603)

enecumene 13-07-2006 16:21:43

hola lepe, sucede lo siguiente, este es mi codigo:

Código Delphi [-]
procedure TAlquiler.MaskEdit1KeyPress(Sender: TObject; var Key: Char);
begin
if Key=#13 then
  begin
qryCliente.Close;
qryCliente.SQL.Add(' SELECT telefono1_cliente, nombre_cliente, apellido_cliente FROM tbClientes ');
qryCliente.SQL.Add('WHERE telefono1_cliente = :telefono');
qryCliente.Parameters.ParamByName('telefono').Value:=strtoInt(MaskEdit1.Text);
qryCliente.Open;
if not qryCliente.IsEmpty then
   DBText1.Caption:=qryClientenombre_cliente.Value+' '+qryClienteapellidos_cliente.Value;
  end;
end;

el campo telefono1_cliente es un campo de texto tipo 809-555-5555, pues cuando corro la aplicacion y digito el telefono para llamar al cliente 809-555-5555 me sale el siguiente error: "809-555-5555 is not a valid integer value" esta claro que no es un valor numerico esto esta en :

Código Delphi [-]
qryCliente.Parameters.ParamByName('telefono').Value:=strtoInt(MaskEdit1.Text);

cual es el valor que debo poner en vez de StrtoInt he intentado con varios y no doy con el. para que tengas una idea de todo lo que tengo en mi form:

1 - adoquery (deberia tenerlo o no es necesario, debe estar en false?)
1 - datasource
1 - maskedit (clientes)
1 - edit (peliculas)
1 - base de datos MS ACCESS
3 - tablas (tbClientes, tbPeliculas, tbPeliculasAlquilada)
1 - dbgrid
2 - speedbuttons (para hacer busquedas de clientes y peliculas tipo ... )
3 - dbedit (donde se mostraran los totales del alquiler, subtotal, iva y total)
2 - dbtext (donde se mostraran el nombre de la pelicula y el cliente)
2 - checkbox (donde se indicara si el cliente paga en efectivo o credito)
4 - buttons (cobrar, anular, cancelar y cerrar)

gracias, espero que no este molestando mucho...

nemesio 14-07-2006 06:20:41

Qué tipo de campo es "Telefono"? StrToInt te muestra el error porque estas tratando de convertir a entero una cadena no válida. Recuerda que las cantidades válidas no tienen caracteres especiales a menos que sea el símbolo de negativo antes de la cantidad o el separador decimal. Por lo tanto si quieres guardar el número telefónico sin tener problemas, el campo debería ser string y debes quitar el StrToInt.

enecumene 14-07-2006 15:28:10

hola nemesio, ya pude resolver el problema este es el codigo:

Código Delphi [-]
procedure TAlquiler.MaskEdit1KeyPress(Sender: TObject; var Key: Char);
begin
if Key=#13 then begin
  qryCliente.Close;
  qryCliente.SQL.Add(' SELECT telefono1_cliente, nombre_cliente, apellidos_cliente FROM tbClientes ');
  qryCliente.SQL.Add('WHERE telefono1_cliente = :telefono');
  qryCliente.Parameters.ParamByName('telefono').Value:=MaskEdit1.Text;
  qryCliente.Open;
  if not qryCliente.IsEmpty then begin
    DBText1.Caption:=qryClientenombre_cliente.Value+''+qryClienteapellidos_cliente.Value;
    Edit2.SetFocus;
    end
  else
    ShowMessage('Cliente no existe')
  end; //if cliente is not empty
end;

pero ahora sucede que ocurre otro error, cuando digito un telefono me sale el nombre en el dbtext, perfecto hasta ahi todo bien, pero supongamos que ese no era el telefono que no queria, limpio la casilla para digitar otro telefono, y me sale este error:

Cita:

EOleException with message 'OLE error 800A0E7C'
y ahora que sera??:confused:

gracias...

enecumene 14-07-2006 17:19:24

ya pude resolver el problema habia que ponerle sql.clear, gracias a todos, por ayudarme..


La franja horaria es GMT +2. Ahora son las 17:26:48.

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