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 03-03-2008
Avatar de voldemmor
voldemmor voldemmor is offline
Miembro
 
Registrado: ago 2006
Posts: 232
Poder: 18
voldemmor Va por buen camino
rpoblemas en insercion con zQuery

Hola amigos, para mi aplicacion utilizo,
Utilizo Mysql 5 + Delphi6 + Zeos 6.0.1, luego de buscar en los foros, llegue a mi codigo



Código Delphi [-]
 
procedure TfrmAlumnos.IngresaAlumno();
var sql:string;
begin
sql := 'INSERT INTO estudiantes'+
' (nombres,apellidos,ci,sexo,fecha_nacimiento,lugar_nacimiento,telefono,direccion,padre,madre,ocupacio  n_padre,ocupacion_madre,estado,cod_colegio)'+
' VALUES (:nombres,:apellidos,:ci,:sexo,:fecha_nacimiento,:lugar_nacimiento,:telefono,:direccion,adre,:madr  e,cupacion_padre,cupacion_madre,:estado,:cod_colegio)';
with AcademicData.ZQuery1 do
begin
SQL.Add('sql');
ParamByName('nombres').AsString:= txtNombre.Text;
ParamByName('apellidos').AsString:= txtApellido.Text;
ParamByName('ci').AsString:= txtNombre.Text;
if(cbxSexo.Text = 'HOMBRE')then
ParamByName('sexo').AsString:= 'H'
else ParamByName('sexo').AsString:= 'F';
ParamByName('fecha_nacimiento').AsDate:= dateFechaNac.Date;
ParamByName('lugar_nacimiento').AsString:= txtLugarNac.Text;
ParamByName('telefono').AsString:= txtTelefono.Text;
ParamByName('direccion').AsString:= txtDireccion.Text;
ParamByName('padre').AsString:= txtPadre.Text;
ParamByName('madre').AsString:= txtMadre.Text;
ParamByName('ocupacion_padre').AsString:= txtOcupPadre.Text;
ParamByName('ocupacion_madre').AsString:= txtOcupMadre.Text;
ParamByName('estado').AsString:= 'ACTIVO';
ParamByName('cod_colegio').AsInteger:= 1;
ExecSQL;
First;
SQL.Clear;
Close;
end;
end ;






peproesta insercion me da un error, Access violation at address 0057A3D8 in module 'Academic.exe'.Read of address 00000304

Y la verdad no se en que estoy fallando.

Agradeceria su ayuda
__________________
tu mente es tu mas presiado tesoro, cultiva tu conocimiento
Responder Con Cita
  #2  
Antiguo 03-03-2008
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
Código Delphi [-]
with AcademicData.ZQuery1 do
begin
SQL.Clear;
SQL.Add('sql');
// lo que sigue
ExecSQL;
First; // para que?
SQL.Clear; // no hace falta
Close;
Saludos
Responder Con Cita
  #3  
Antiguo 03-03-2008
Avatar de voldemmor
voldemmor voldemmor is offline
Miembro
 
Registrado: ago 2006
Posts: 232
Poder: 18
voldemmor Va por buen camino
ok lo voy y lo pruevo

Cita:
Empezado por Caral Ver Mensaje
Hola

Código Delphi [-]
with AcademicData.ZQuery1 do
begin
SQL.Clear;
SQL.Add('sql');
// lo que sigue
ExecSQL;
First; // para que?
SQL.Clear; // no hace falta
Close;
Saludos
Ok caral voy a probarlo lo mas rapido posible y hos comentoque sucedio
__________________
tu mente es tu mas presiado tesoro, cultiva tu conocimiento
Responder Con Cita
  #4  
Antiguo 04-03-2008
Avatar de voldemmor
voldemmor voldemmor is offline
Miembro
 
Registrado: ago 2006
Posts: 232
Poder: 18
voldemmor Va por buen camino
parece que no se escribe la sentencia

Bueno ya realice los cambios y con más tiempo me puse a depurar, pero me sigue dando el problema, al parecer es en el momneto de asignar la sentencia sql (no lo hace), y luego me da el error de acceso.
Intente escribir la sentencia directamente sobre el zQuery pero el resultado es el mismo.
__________________
tu mente es tu mas presiado tesoro, cultiva tu conocimiento
Responder Con Cita
  #5  
Antiguo 04-03-2008
Avatar de eduarcol
[eduarcol] eduarcol is offline
Miembro Premium
 
Registrado: ago 2003
Ubicación: En los estados Zulia y Merida de Venezuela
Posts: 4.151
Poder: 25
eduarcol Va por buen camino
Ese error casualmente me dio por primera vez hace dos dias, luego de probar y depurar me di cuenta que era error en la construccion del Query.

Asi ha vista de pajaro el parametro madre, esta mal escrito, pero habria que ver si los tipos coinciden
__________________
...Yo naci en esta ribera del arauca vibr@d0r
Soy hermano de la espuma,
de la garza, de la rosa y del sol...
Viva Venezuela
Responder Con Cita
  #6  
Antiguo 04-03-2008
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 29
Lepe Va por buen camino
Cita:
Empezado por Caral
SQL.Clear; // no hace falta
Posiblemente sea un sql que ejecuta varias veces, por eso al final lo limpia, para que en la próxima ejecución el sql esté vacío.


Te aconsejo esta forma:
Código Delphi [-]
with AcademicData.ZQuery1 do
begin
  if not Prepared then 
    Prepare;
   
  // dar valores a los parámetros
   ExecSql;
end;
- El sql lo dejas escrito en tiempo de diseño.
- La primera vez que se ejecute, compilará la sentencia sql (Prepare), de forma que las siguientes veces que se ejecute, no hay que chequear la sintaxis.

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #7  
Antiguo 04-03-2008
luisgutierrezb luisgutierrezb is offline
Miembro
 
Registrado: oct 2005
Ubicación: México
Posts: 925
Poder: 19
luisgutierrezb Va por buen camino
bueno yo veo este error:

SQL.Add('sql');

creo que lo correcto debe ser:

SQL.Add(sql);
Responder Con Cita
  #8  
Antiguo 04-03-2008
Avatar de eduarcol
[eduarcol] eduarcol is offline
Miembro Premium
 
Registrado: ago 2003
Ubicación: En los estados Zulia y Merida de Venezuela
Posts: 4.151
Poder: 25
eduarcol Va por buen camino
Cita:
Empezado por luisgutierrezb Ver Mensaje
bueno yo veo este error:

SQL.Add('sql');

creo que lo correcto debe ser:

SQL.Add(sql);
Listo, solucion al problema,
__________________
...Yo naci en esta ribera del arauca vibr@d0r
Soy hermano de la espuma,
de la garza, de la rosa y del sol...
Viva Venezuela
Responder Con Cita
  #9  
Antiguo 04-03-2008
Avatar de voldemmor
voldemmor voldemmor is offline
Miembro
 
Registrado: ago 2006
Posts: 232
Poder: 18
voldemmor Va por buen camino
no aun no

la verdad si note ese error(sql.add('sql')) luego de dejar la pregunta en el foro.
Pero la verdad no es esa la razon. voy a probar con los parametros
__________________
tu mente es tu mas presiado tesoro, cultiva tu conocimiento
Responder Con Cita
  #10  
Antiguo 04-03-2008
Avatar de eduarcol
[eduarcol] eduarcol is offline
Miembro Premium
 
Registrado: ago 2003
Ubicación: En los estados Zulia y Merida de Venezuela
Posts: 4.151
Poder: 25
eduarcol Va por buen camino
no es la razon?? , si en ningun momento le has asignado la instruccion al componente, porq no colocas el codigo tal cual lo tienes en el formulario?
__________________
...Yo naci en esta ribera del arauca vibr@d0r
Soy hermano de la espuma,
de la garza, de la rosa y del sol...
Viva Venezuela
Responder Con Cita
  #11  
Antiguo 04-03-2008
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
Pues no se si ayudara, pero por lo menos lo afino un poco.
Código Delphi [-]
 
procedure TfrmAlumnos.IngresaAlumno();
var Sex: string;
begin
 
 if (cbxSexo.Text = '') then
 Showmessage('Que¡¡¡, No tiene sexo?')
 else
 if (cbxSexo.Text = 'HOMBRE') then
 Sex:= 'M'
 else
 Sex:= 'F';

with AcademicData.ZQuery1 do
begin
sql.Text := 'INSERT INTO estudiantes'+
'(nombres,apellidos,ci,sexo,fecha_nacimiento,lugar_nacimiento,telefono,direccion,padre,madre,ocupaci  o  n_padre,ocupacion_madre,estado,cod_colegio)'+
' VALUES (:nombres,:apellidos,:ci,:sexo,:fecha_nacimiento,:lugar_nacimiento,:telefono,:direccion,adre,:madr  e,cupacion_padre,cupacion_madre,:estado,:cod_colegio)';

ParamByName('nombres').AsString:= txtNombre.Text;
ParamByName('apellidos').AsString:= txtApellido.Text;
ParamByName('ci').AsString:= txtNombre.Text;
ParamByName('sexo').AsString:= Sex;
ParamByName('fecha_nacimiento').AsDate:= dateFechaNac.Date;
ParamByName('lugar_nacimiento').AsString:= txtLugarNac.Text;
ParamByName('telefono').AsString:= txtTelefono.Text;
ParamByName('direccion').AsString:= txtDireccion.Text;
ParamByName('padre').AsString:= txtPadre.Text;
ParamByName('madre').AsString:= txtMadre.Text;
ParamByName('ocupacion_padre').AsString:= txtOcupPadre.Text;
ParamByName('ocupacion_madre').AsString:= txtOcupMadre.Text;
ParamByName('estado').AsString:= 'ACTIVO';
ParamByName('cod_colegio').AsInteger:= 1;
ExecSQL;
Close;
end;
end ;
Saludos
Responder Con Cita
  #12  
Antiguo 06-03-2008
Avatar de voldemmor
voldemmor voldemmor is offline
Miembro
 
Registrado: ago 2006
Posts: 232
Poder: 18
voldemmor Va por buen camino
Hay los :

Bueno amigos cuando una mas esta de apuro es cuando más deja de ver cosas tal fundamentales como (dos puntos) parametro.

Gracias chicos,
eduarcol tenias razon sobre los parametros, mi error, me he comido los : (dos puntos), y que dificil es darce cuenta de esos detalles tan peques
Gracias caral por darle mejor pinta al codigo =)
__________________
tu mente es tu mas presiado tesoro, cultiva tu conocimiento

Última edición por voldemmor fecha: 06-03-2008 a las 20:54:17.
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
Insertar con zquery schaka SQL 9 24-02-2008 21:52:35
Pasar el resultado de un Zquery a una variable NeWsP Conexión con bases de datos 6 02-06-2007 20:43:37
Insertar con Zquery + ZUpdate Pekador MySQL 7 04-02-2007 19:01:59
Duda sobre ZQuery ( Zeoslib ) BlackDaemon MySQL 2 02-02-2007 00:45:08
ZTable vs ZQuery quade Conexión con bases de datos 1 01-06-2004 18:18:38


La franja horaria es GMT +2. Ahora son las 10:21:16.


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