Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > MySQL
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 04-09-2014
frandigo77 frandigo77 is offline
Miembro
NULL
 
Registrado: abr 2014
Posts: 17
Poder: 0
frandigo77 Va por buen camino
La funcion last_insert_id de my sql devuelve siempre cero

Hola buenas...hago refernecia al foro por que tengo un problema al que no lo logro darle solucion. Estoy trabajando con Delphi y MySql y cuando realizo una inserción en la bd, intento recuperar el valoor del registro metido, ya sea desde la capa intermedia mediante un query o desde el mismo mysql y siempre me devueve el valor 0. El mismo entorno MySQL Worckbench tambien me devuelve 0, alguien puede ayudarme.

Gracias.
Responder Con Cita
  #2  
Antiguo 04-09-2014
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
¿La tabla donde inserts el registro tiene un campo de tipo autoinc?

// Saludos
Responder Con Cita
  #3  
Antiguo 04-09-2014
luisgutierrezb luisgutierrezb is offline
Miembro
 
Registrado: oct 2005
Ubicación: México
Posts: 925
Poder: 19
luisgutierrezb Va por buen camino
También hay que ver que la función last_insert_id() funciona por conexión, por lo que si otra conexión hace las inserciones y quieres ver en otra en cual va o cuantas lleva o cual fue la última, no se podrá...
Responder Con Cita
  #4  
Antiguo 05-09-2014
frandigo77 frandigo77 is offline
Miembro
NULL
 
Registrado: abr 2014
Posts: 17
Poder: 0
frandigo77 Va por buen camino
Si la clave primaria es AutoInc..la seect la ejcuto desde el mismo entorno de MySQL

Código SQL [-]
Insert into Tabla values(x,x,x);
select last_insert_id();


Esta misma operacion la realizo desde un TDataSetProvider en Delphi y tambien me devuelve el mismo resultado..0.

Código Delphi [-]
procedure TsvmRPK03.prqrPersonaAfterUpdateRecord(Sender: TObject;
  SourceDS: TDataSet; DeltaDS: TCustomClientDataSet; UpdateKind: TUpdateKind);
begin
  inherited;
  if UpdateKind = ukInsert then
  begin
    //OJO Tanto para Maestro como para Detalle
    SourceDS.Tag:= Self.UltimaIdentidad; //REVISAR last_change_id
    DeltaDS.Fields[0].NewValue:= SourceDS.Tag;
  end;
end;

Código Delphi [-]
function TsvmRPK03.UltimaIdentidad: LongInt;
var
  V: Variant;
begin
  qrLastInSertId.Close;
  qrLastInsertId.Open;
  Result:= qrLastInsertIdId.Value;
end;
Responder Con Cita
  #5  
Antiguo 24-09-2014
luisgutierrezb luisgutierrezb is offline
Miembro
 
Registrado: oct 2005
Ubicación: México
Posts: 925
Poder: 19
luisgutierrezb Va por buen camino
Pero si esta configurada tu conexión para ser persistente? porque si no es así, cada vez que cierras y abres un query se crea una conexión nueva, otra cosa, si no tienes el campo autoinc en un indice, también te regresara 0
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
Función de Postgres que devuelve conjunto de registros rmoraglez PostgreSQL 2 17-10-2011 22:20:48
(DBExpress)la función IsIndexField del TSQLQuery siempre me devuelve falso amezeta32 Conexión con bases de datos 0 17-08-2006 00:20:46
funcion que devuelve el tipo de dato de un variant samame OOP 3 08-07-2004 16:02:30
Firebirds siempre devuelve un registro, a pesar... Nose Firebird e Interbase 8 17-05-2004 17:43:27
Select Max siempre devuelve valor FernanGil Conexión con bases de datos 3 06-10-2003 15:55:36


La franja horaria es GMT +2. Ahora son las 01:12:54.


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