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 Buscar Temas de Hoy Marcar Foros Como Leídos

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 01-08-2017
Tecnofacil Tecnofacil is offline
Miembro
 
Registrado: jun 2015
Posts: 50
Poder: 9
Tecnofacil Va por buen camino
Error en FireDac y Access

Buenas equipo.
Estoy armando un pequeño programa para llevar un registro de los trabajos de un amigo mecánico, como su PC es vieja ni a palos corría MySQL o similar así que le hice una base en Access y lo conecto con Firedac, todo funciona de maravillas excepto en la tabla clientes que al darle Append a Firedac me queda en el ultimo registro, le agregue varios registros a mano en access pensando que era por ser el primer registro pero nada, sigue en lo mismo, la clave principal es autoincremental como todas las otras tablas. Alguna idea de lo que puede estar fallando, o alguna alternativa "liviana" a access?.
Responder Con Cita
  #2  
Antiguo 01-08-2017
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.021
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cambia a Firebird, que ocupa menos y es rápido, ágil, potente, escalable, libre y gratis...
En cuanto al problema, ¿qué quieres decir con que queda el último?
Responder Con Cita
  #3  
Antiguo 01-08-2017
bitbow bitbow is offline
Miembro
 
Registrado: jul 2006
Posts: 366
Poder: 18
bitbow Va camino a la fama
Firebird o Sqlite (si no vas a manejar storeprocedures).

Salidos.
__________________
¡Ni como ayudarte Niño!!
bitbow
Responder Con Cita
  #4  
Antiguo 01-08-2017
Tecnofacil Tecnofacil is offline
Miembro
 
Registrado: jun 2015
Posts: 50
Poder: 9
Tecnofacil Va por buen camino
Cita:
Empezado por Casimiro Notevi Ver Mensaje
Cambia a Firebird, que ocupa menos y es rápido, ágil, potente, escalable, libre y gratis...
En cuanto al problema, ¿qué quieres decir con que queda el último?
Supongamos que tengo tres registros de clientes, (los cuales cargue desde access),
Cita:
Pedro
Juan
Pablo
cuando quiero agregar un cliente nuevo por ejemplo "Daniel" haciendo
Código Delphi [-]
fdq_clientes.append;
//Código 
fdq_clientes.post;
Lo que hace es grabar "Daniel" en el lugar de "Pablo"
Cita:
Pedro
Juan
Daniel

De todos modos ya estoy incursionando en SQLite

Gracias a todos
Responder Con Cita
  #5  
Antiguo 03-08-2017
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.233
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Yo te diría que para hacer una simple prueba, pruebes a hacer lo mismo utilizando ADO en lugar de FireDAC.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #6  
Antiguo 04-08-2017
Tecnofacil Tecnofacil is offline
Miembro
 
Registrado: jun 2015
Posts: 50
Poder: 9
Tecnofacil Va por buen camino
Cita:
Empezado por Neftali Ver Mensaje
Yo te diría que para hacer una simple prueba, pruebes a hacer lo mismo utilizando ADO en lugar de FireDAC.
Hola Neftali.
No quiero sacrificar demasiado tiempo a ese mini-proyecto, (ad-honorem), así que la solución rápida fue ponerle una condicional
Código Delphi [-]
if dbedit_dominio <> '' // Si tiene texto es porque se quedó en el ultimo registro
   begin
      fdq_clientes.cancel;
      fdq_clientes.append;
   end;
Eso porque descubrí que la primera vez que le das "Nuevo" se quedaba en el ultimo registro pero si le daba "Cancelar" y de nuevo al botón "Nuevo" lo hacia bien.
Responder Con Cita
  #7  
Antiguo 04-08-2017
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.021
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Un registro no se inserta en ningún sitio fijo, puede ser al final, al principio, realmente en cualquier sitio que tenga espacio, por ejemplo en un registro borrado, etc.
Tú eres el encargado de mostrarlo en el orden que quieras:
Código SQL [-]
select * from tbClientes order by codigo
Responder Con Cita
  #8  
Antiguo 07-08-2017
Tecnofacil Tecnofacil is offline
Miembro
 
Registrado: jun 2015
Posts: 50
Poder: 9
Tecnofacil Va por buen camino
Cita:
Empezado por Casimiro Notevi Ver Mensaje
Un registro no se inserta en ningún sitio fijo, puede ser al final, al principio, realmente en cualquier sitio que tenga espacio, por ejemplo en un registro borrado, etc.
Tú eres el encargado de mostrarlo en el orden que quieras:
Código SQL [-]
select * from tbClientes order by codigo
Correcto, el problema es que reemplaza al ultimo registro agregado.
Responder Con Cita
  #9  
Antiguo 07-08-2017
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.021
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Pon tu código fuente.
Responder Con Cita
  #10  
Antiguo 07-08-2017
bitbow bitbow is offline
Miembro
 
Registrado: jul 2006
Posts: 366
Poder: 18
bitbow Va camino a la fama
Tu caso es muy raro por lo cual mas bien creo tienes alguna linea de mas, seria bueno que pusieras la seccion de codigo donde inertas y tambien como editas.

Saludos.
__________________
¡Ni como ayudarte Niño!!
bitbow
Responder Con Cita
  #11  
Antiguo 08-08-2017
Tecnofacil Tecnofacil is offline
Miembro
 
Registrado: jun 2015
Posts: 50
Poder: 9
Tecnofacil Va por buen camino
No hay mucho código. Firedac lo hace todo.
Código Delphi [-]
procedure TF_clientes.btn_nuevoClick(Sender: TObject);
begin
  fdq_clientes.append;
  pnl_campos.Enabled := True; // Habilito panel con cuadros de texto para agregar datos
  DBEdit1.SetFocus ;  // Me posiciono en el primer campo
  // Deshabilito/habilito botones
  btn_editar.Enabled := False;
  btn_nuevo.Enabled:= False;
  btn_grabar.Enabled := True;
  btn_cancelar.Enabled := True;
  btn_salir.Enabled := False;
  DBGrid1.Enabled := False;
end;
Responder Con Cita
  #12  
Antiguo 08-08-2017
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.021
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Seguro que hay más código
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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
Error filtrar DBgrid d_x7 y Firedac kia Varios 1 11-06-2017 15:09:23
Firedac y SQL Server: Error por Case Sensitive mel4 Conexión con bases de datos 4 03-03-2017 19:08:12
Error de conexion con FireDAC y Firebird 3 GustavoCruz Firebird e Interbase 7 09-02-2017 18:49:17
Error Interbase Access violation The code attempted to access a virtual ryderMX Firebird e Interbase 3 21-11-2015 12:11:46
FireDac y Access glsaavedra Conexión con bases de datos 2 28-05-2014 00:09:15


La franja horaria es GMT +2. Ahora son las 11:48:47.


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