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 09-01-2008
sdiaz1983 sdiaz1983 is offline
Miembro
 
Registrado: sep 2007
Posts: 52
Poder: 17
sdiaz1983 Va por buen camino
Problema con añadir registro a base de datos

Buen dia a todos, antes que nada quiero que observen este codigo
Código Delphi [-]
procedure TFrmClientes.BtGuardarClick(Sender: TObject);
begin
TblCliente.Active:=True;
QryCliente.SQL.Text:='select * from cliente where Cedula=:P1 and Nombre=:P2 and Apellido=:P3 and Telefono=:P4 and Direccion=:P5';
QryCliente.Params[0].AsString:=EdtCedula.Text;
QryCliente.Params[1].AsString:=EdtNombre.Text;
QryCliente.Params[2].AsString:=EdtApellido.Text;
QryCliente.Params[3].AsString:=EdtTelefono.Text;
QryCliente.Params[4].AsString:=EdtDireccion.Text;
QryCliente.Active:=True;
if (QryCliente.RecordCount>0) then
ShowMessage('REGISTRO YA ESTA: '+IntToStr(QryCliente.RecordCount)+'')
else
ShowMessage('PAILAS');
QryCliente.AppendRecord([EdtCedula.Text]);
QryCliente.Active:=False;
TblCliente.Active:=False;
end;
end.

Lo que estoy tratando de hacer(inicialmente a manera de prueba) es que por ejemplo yo ingreso unos datos en un formulario, si me lo encuentra listo me muestra el mensaje Registro ya esta, eso ya funciona, el problema que tengo es listo ingreso los datos de un registro que no este en la base de datos me bota el mensaje pailas y lo que quiero a manera de prueba es que a manera de prueba me agregue lo que esta en ese Edt (EdtCedula) al la base de datos, segun la ayuda el metodo appenrecord me permite agregar registros al final de la base de datos, pero el erro que me bota dice mas o menos "QryCliente: No se puede modificar un Dataset de solo lectura"( es mas o menos mi traduccion ya que el mensaje en ingles no recuerdo pero se relaciona con esto), el problema es si con ese metodo me ahorro el usar la sentencia sql de insert (insert into .... values....), que tengo que corregir del codigo.

Mil Gracias por su ayuda.
Responder Con Cita
  #2  
Antiguo 09-01-2008
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 28
jachguate Va por buen camino
Antes de activar el query, poné esto:

Código Delphi [-]
  QryCliente.RequestLive := True;

hasta luego.

__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
  #3  
Antiguo 09-01-2008
sdiaz1983 sdiaz1983 is offline
Miembro
 
Registrado: sep 2007
Posts: 52
Poder: 17
sdiaz1983 Va por buen camino
Agradecimientos

Mil Gracias Por Su Ayuda Ya Me Funciono, uan pregunta el registro me lo esta agregando al principio de la tabla, queria preguntarle como hago oque propiedad tengo que hacer para que me lo agregue al final.

Gracias uan vez mas
Responder Con Cita
  #4  
Antiguo 09-01-2008
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 28
jachguate Va por buen camino
En las bases de datos SQL no existe una secuencia en los registros de una tabla, en otras palabras no existe tal cosa como "primer registro" o "último registro" de una tabla, que son conceptos usuales en manejadores de archivos de escritorio.

Para que el servidor te entregue los registros en un orden particular, existe la clausula "order by", que podes añadir a tu sentencia SQL.

Hasta luego.

__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
  #5  
Antiguo 09-01-2008
Avatar de AzidRain
[AzidRain] AzidRain is offline
Miembro Premium
 
Registrado: sep 2005
Ubicación: Córdoba, Veracruz, México
Posts: 2.914
Poder: 21
AzidRain Va camino a la fama
O lo que es lo mismo, debes definir un índice para tu tabla que servirá para que tu motor te entregue los registros ordenados de una cierta manera por default. Puedes usar un campo autoincrementado para llevar un secuencia según el orden en que fueron ingresados los registros.
__________________
AKA "El animalito" ||Cordobés a mucha honra||
Responder Con Cita
  #6  
Antiguo 09-01-2008
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 28
jachguate Va por buen camino
Cita:
Empezado por AzidRain Ver Mensaje
O lo que es lo mismo, debes definir un índice para tu tabla que servirá para que tu motor te entregue los registros ordenados de una cierta manera por default. Puedes usar un campo autoincrementado para llevar un secuencia según el orden en que fueron ingresados los registros.
Lo siento, pero no estoy de acuerdo con eso. Por mucho que definas un índice, si haces un simple:

Código SQL [-]
select *
  from tabla

El motor te devolverá los datos en un orden no definido.

Por el contrario, si lanzás un query con la clausula order by, aún cuando el motor no tenga índices en que apoyarse, te entregará los datos perfectamente ordenados.

El hecho de que existan o no índices, es un tema que tiene que ver con el desempeño de la base de datos, pero no con el ordenamiento de los resultados que devuelve un motor.

AzidRain, no es conveniente generalizar en este tema, pues mientras algún motor probablemente se base en un índice (por ejemplo, el de la llave primaria) para entregar datos ordenados, el estándar SQL no le impone la obligación de hacerlo, con lo que el comportamiento podría variar entre versiones, y definitivamente varía entre motores.

Dado que no estamos hablando de ningún motor en particular... es mejor hacer afirmaciones apegadas al estándar, y dejar que cada quien compruebe si su base de datos lo cumple o no.

Hasta luego.

__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
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 al insertar un registro en la base de datos mcalmanovici Conexión con bases de datos 2 30-08-2007 04:48:59
Insertar Un Registro En Base De Datos Con Boton ghato168 PHP 14 01-08-2007 20:10:28
Recorrer base de datos registro por registro Goyo SQL 3 06-09-2006 21:40:47
Problema al añadir registro joanajj SQL 5 02-05-2006 20:21:12
Mismo registro de la base de datos al crear Form gluglu Varios 2 28-09-2004 18:58:25


La franja horaria es GMT +2. Ahora son las 16:50:51.


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