Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Coloboración Paypal con ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 26-09-2008
lKinGl lKinGl is offline
Miembro
 
Registrado: ago 2007
Posts: 333
Poder: 19
lKinGl Va por buen camino
y si...el campo num_veh es entero y hay un registro que tiene 0 para que cuando el codigo me funcione me arroje 1
Responder Con Cita
  #2  
Antiguo 26-09-2008
lKinGl lKinGl is offline
Miembro
 
Registrado: ago 2007
Posts: 333
Poder: 19
lKinGl Va por buen camino
ya funcionó y no se que hice

¿alguien podria explicar?
Responder Con Cita
  #3  
Antiguo 26-09-2008
lKinGl lKinGl is offline
Miembro
 
Registrado: ago 2007
Posts: 333
Poder: 19
lKinGl Va por buen camino
muchas gracias caro por tu ayuda tu siempre tan oportuna
Responder Con Cita
  #4  
Antiguo 26-09-2008
[coso] coso is offline
Miembro Premium
 
Registrado: may 2008
Ubicación: Girona
Posts: 1.678
Poder: 0
coso Va por buen camino
Hola, usar querys es lo mas (mucho mas) recomendable. Solo añado esto para mostrar que tambien se puede hacer mediante unicamente tablas.

Código Delphi [-]
 
 Tabla.IndexFieldNames := 'num_veh';
 Tabla.Last;
 num_veh := Tabla.FieldByName('num_veg').Asinteger;
 inc(num_veh);
 ...
Responder Con Cita
  #5  
Antiguo 26-09-2008
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
¿Y no se puede usar un campo autoinc y dejar que paradox haga todo?

// Saludos
Responder Con Cita
  #6  
Antiguo 26-09-2008
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Poder: 10
marcoszorrilla Va por buen camino
El riesgo de los campos autoinc es que si por un casual se nos ocurre que sean índice para establecer una relación maestro-detalle, por ejemplo una factura y sus líneas. Si por algún motivo falla, tiene efectos desastrosos pues nos borraría facturas.

Me explico, tengo una tabla de facturas y otra líneas, por el motivo que sea decido importar la tabla de facturas completa a una nueva tabla, por ejemplo por alguna corrupción que ha sufrido, a partir de aquí la nueva tabla es posible que no coincida el autoincremento que llevabamos y por lo tanto la relación maestro-detalle se vuelve azarosa.

Si además el autoincremento por el motivo que fuere cambia irá machacando todas las facturas que sea superiores, hablo por experiencia, pues en una ocasión un sistema perdía recibos por suerte descubrí pronto que por un trasvase a otra tabla el autoincremento se había vuelto inferior al que llevaba la tabla antigua.

Un Saludo.
__________________
Guía de Estilo de los Foros
Cita:
- Ça c'est la caisse. Le mouton que tu veux est dedans.
Responder Con Cita
  #7  
Antiguo 27-09-2008
Avatar de Softweb
Softweb Softweb is offline
Miembro
 
Registrado: ago 2008
Posts: 46
Poder: 0
Softweb Va por buen camino
Hola te paso una funcion para hacer lo que tu quieres.

Código Delphi [-]
function GenerarId(KeyField, TableName, Condicion: string): Integer;
var
  NewValue: Integer;
begin
  NewValue := -1;
  Query1.Close;
  Query1.SQL.Clear;
  if Condicion <> '' then
    Query1.SQL.Add('SELECT Max( '+KeyField+' ) AS MAXIMO FROM '+TableName+ ' WHERE '+Condicion)
  else
    Query1.SQL.Add('SELECT Max('+KeyField+') AS MAXIMO FROM '+TableName);
  Query1.Open;
  // Si no hay registros en la tabla la consulta devuelve null
  if VarIsNull( Query1.FieldValues[ 'MAXIMO' ] ) then
    NewValue := 1 // valor para el primer registro de la tabla
  else
    NewValue := Integer( Query1.FieldValues[ 'MAXIMO' ] ) + 1;
  Query1.Close;
  Result := NewValue;
end;

Para usarla es asín.

Código Delphi [-]
NuevoNumero := GenerarId('num_veh','vehiculos.db', '');

O si lo quieres con alguna condicion.

Código Delphi [-]
NuevoNumero := GenerarId('num_veh','vehiculos.db', 'Fecha > ''01/06/2008''');


Saludos
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
Mostrar Registros Mayor que lKinGl SQL 35 01-06-2008 21:10:29
consulta del numero mayor de subregistro Yun-i Varios 21 29-02-2008 18:47:10
Insertar numero en tabla paradox dayser C++ Builder 8 24-07-2006 20:23:47
¿Qué quieres ser de mayor? kinobi Humor 16 11-07-2003 13:46:30


La franja horaria es GMT +2. Ahora son las 10:57:59.


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