Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 06-09-2007
Avatar de enecumene
[enecumene] enecumene is offline
Miembro de Oro
 
Registrado: may 2006
Ubicación: Santo Domingo, Rep. Dom.
Posts: 3.040
Poder: 21
enecumene Va por buen camino
Problema con una consulta Insert

Hola Compañeros de nuevo vuelvo con otro obstaculo en mi camino (por asi decirlo) esta es mi consulta:

Código Delphi [-]
procedure TFEntrada.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if Key=#13 then begin
 with AEmpleado do begin
  if active then Close;
  sql.Clear;
  SQL.Add(' SELECT cedula, nombre, cargo, tanda FROM Empleado ');
  SQL.Add('WHERE cedula = '+Edit1.Text+'' );
  Open;
  if not IsEmpty then begin
    DBText1.Caption:=fieldByName('Nombre').AsString;
    DBText2.Caption:=fieldByName('cargo').AsString;
    DBText3.Caption:=fieldByName('tanda').AsString;
    DBText4.Caption:=TimetoStr(now);
    DateSeparator:= '/';
    ShortDateFormat:= 'dd/mm/yyyy';
    DBText5.Caption:= DateToStr(Date);
    AEntrada.SQL.Clear;
    AEntrada.SQL.Add('INSERT INTO Asistencia (cedula, nombre, cargo, tanda, entrada, salida, fecha, excusa, licencia, permiso,vacacion, enfermedad, servicio)');
    AEntrada.SQL.Add(' Values('+Edit1.Text+', '+DBText1.Caption+', '+DBText2.Caption+', '+DBText3.Caption+', '+DBText4.Caption+', "", '+DBText5.Caption+', "EX", "LI", "PE", "VA", "EN", "SE")');
    ShowMessage(AEntrada.SQL.Text);
    AEntrada.ExecSQL;
  end else begin
    ShowMessage('Empleado no existe');
   end;
  end;
 end;
end;

esta es el resultado de la consulta:

Cita:
---------------------------
Asistencia
---------------------------
INSERT INTO Asistencia (cedula, nombre, cargo, tanda, entrada, salida, fecha, excusa, licencia, permiso,vacacion, enfermedad, servicio)
Values(00113783906, Fernando Leonor, Negociador de Compras, Matutina, 10:40:52 p.m., "", 05/09/2007, "EX", "LI", "PE", "VA", "EN", "SE")

---------------------------
OK
---------------------------
y este es el error que me tira:

Cita:
---------------------------
Debugger Exception Notification
---------------------------
Project Asistencia.exe raised exception class EOleException with message 'Parameter object is improperly defined. Inconsistent or incomplete information was provided'. Process stopped. Use Step or Run to continue.
---------------------------
OK Help
---------------------------
Estoy trabajando con ADO, Access y delphi7,

los campos entrada y salida son de tipo Date/Time formato longTime, el campo fecha de tipo Date/Time formato shortDate, el campo cedula es de tipo integer y los demas de tipo texto.

Saludos...
__________________

Mi BLOG - ¡Joder, leanse la guia de estilo!
Las Palabras son enanas, los ejemplos gigantes.

Última edición por enecumene fecha: 06-09-2007 a las 04:59:19.
Responder Con Cita
  #2  
Antiguo 06-09-2007
Avatar de ElDioni
[ElDioni] ElDioni is offline
Miembro Premium
 
Registrado: jul 2005
Ubicación: Murcia (España)
Posts: 935
Poder: 19
ElDioni Va por buen camino
No se si será eso, pero yo para mi que te faltan los comillas simples en los valores de tipo string, yo para poner las comillas simples en las consultas de sql utilizo el comando quotedstr, te pongo un ejemplo:

Código Delphi [-]
adoquery1.sql.text:='SELECT nombre FROM clientes WHERE nombre=' + quotedstr(edit1.text);

de esta forma me coloca las comillas dentro de la consulta, prueba a ver si te funciona con esto.
tambien puedes utilizar el quotedstr con texto literal, ejemplo:

Código Delphi [-]
adoquery1.sql.text:='SELECT nombre FROM clientes WHERE nombre=' + quotedstr('ElDioni');

Espero te sirva de algo lo que te he dicho. Un saludo
Responder Con Cita
  #3  
Antiguo 07-09-2007
Avatar de enecumene
[enecumene] enecumene is offline
Miembro de Oro
 
Registrado: may 2006
Ubicación: Santo Domingo, Rep. Dom.
Posts: 3.040
Poder: 21
enecumene Va por buen camino
Hey ElDioni muchas gracias por aclararme la duda, mi codigo quedo asi:

Código Delphi [-]
AEntrada.SQL.Clear;
    AEntrada.SQL.Add('INSERT INTO Asistencia (cedula, nombre, cargo, tanda, entrada, salida, fecha, excusa, licencia, permiso,vacacion, enfermedad, servicio)');
    AEntrada.SQL.Add(' Values('+Quotedstr(Edit1.Text)+', '+Quotedstr(DBText1.Caption)+', '+Quotedstr(DBText2.Caption)+', '+Quotedstr(DBText3.Caption)+', '+Quotedstr(DBText4.Caption)+', '+Quotedstr('00:00:00')+', '+Quotedstr(DBText5.Caption)+', '+Quotedstr('EX')+', '+Quotedstr('LI')+', '+Quotedstr('PE')+', '+Quotedstr('VA')+', '+Quotedstr('EN')+', '+Quotedstr('SE')+')');
    ShowMessage(AEntrada.SQL.Text);
    AEntrada.ExecSQL;

siempre fallo con el Quotedstr o IntToInt, etc, etc. no logro acostumbrarme ya que estoy haciendo una transicion desde PHP.

de nuevo te lo agradezco...

Saludos...
__________________

Mi BLOG - ¡Joder, leanse la guia de estilo!
Las Palabras son enanas, los ejemplos gigantes.
Responder Con Cita
  #4  
Antiguo 07-09-2007
Avatar de enecumene
[enecumene] enecumene is offline
Miembro de Oro
 
Registrado: may 2006
Ubicación: Santo Domingo, Rep. Dom.
Posts: 3.040
Poder: 21
enecumene Va por buen camino
Siguiendo el mismo hilo, se me presenta otro problema, no se me quiere actualizar un campo tipo hora, codigo:

Código Delphi [-]
//Consulta para registrar la salida del empleado
    ASalida.SQL.Clear;
    ASalida.SQL.Add('UPDATE Asistencia SET salida = '+Quotedstr(DBText4.Caption)+' WHERE cedula = '+Edit1.Text+' and fecha = '+DBText5.Caption+' ');
    ShowMessage(ASalida.SQL.Text);
    ASalida.ExecSQL;

resultado de la consulta:

Cita:
---------------------------
Asistencia
---------------------------
UPDATE Asistencia SET salida = '07:59:13 p.m.' WHERE cedula = 00113783907 and fecha = 06/09/2007

---------------------------
OK
---------------------------
en la base de datos el campo salida es tipo Date/Time formato long time y me aparece asi: 12:00:00 a.m. el programa asume que actualizo pero en la base de datos no, que estoy haciendo mal?
__________________

Mi BLOG - ¡Joder, leanse la guia de estilo!
Las Palabras son enanas, los ejemplos gigantes.
Responder Con Cita
  #5  
Antiguo 07-09-2007
Avatar de enecumene
[enecumene] enecumene is offline
Miembro de Oro
 
Registrado: may 2006
Ubicación: Santo Domingo, Rep. Dom.
Posts: 3.040
Poder: 21
enecumene Va por buen camino
__________________

Mi BLOG - ¡Joder, leanse la guia de estilo!
Las Palabras son enanas, los ejemplos gigantes.
Responder Con Cita
  #6  
Antiguo 07-09-2007
Avatar de Paoti
Paoti Paoti is offline
Miembro
 
Registrado: may 2003
Ubicación: Monterrey. N.L., México
Posts: 612
Poder: 21
Paoti Va por buen camino
que onda...


porque no haces el update desde la base de datos


por ejemplo di es así:

Código SQL [-]
update tabla set campoFecha = '12:00'

en tonces trata de poner el campo con el formato de hora especifacado...


edtito:

no el campo, la etiqueta que quieres meter... puedes utilizar la función Format()


checa la ayuda de delphi para esa función
__________________
Estudia y anda en la calle.... que asi serás el doble de listo que los demás...

análisis de información
análisis y diseño de sistemas

Paoti Rios Reséndiz

Última edición por Paoti fecha: 07-09-2007 a las 04:28:20. Razón: me falto poner mas cosas, adios
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Problema Consulta Insert into... enecumene Conexión con bases de datos 25 25-08-2007 00:45:49
problema con un insert darkclow_juliga Conexión con bases de datos 1 05-12-2006 11:40:33
Problema con Insert joanajj Conexión con bases de datos 1 01-05-2006 08:11:40
Problema con insert Ivan_25 C++ Builder 7 04-11-2005 10:38:34
consulta sobre insert davidgaldo SQL 1 14-04-2004 14:08:02


La franja horaria es GMT +2. Ahora son las 15:24:59.


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