Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 03-07-2020
pepesoft pepesoft is offline
Miembro
 
Registrado: ago 2014
Posts: 15
Poder: 0
pepesoft Va por buen camino
Ayuda con SQL

Hola, tengo un caso de una consulta que es la siguiente
Código Delphi [-]
var
  tValor, tNumero: Integer;
  tText :string;
begin
  tTUni := TUniQuery.Create(nil);
  tTUni.Connection := DBConexion.BaseDatos;

  tText  := 'TPT';
  tValor := 1;

  with Uniquery do
  begin

    Close;
    SQL.Clear;
    SQL.Add('SELECT MAX(SUBSTR(codigo,4))::integer + 1 AS numero FROM clientes');
    SQL.Add(' WHERE LEFT(codigo,3) = :texto ');
    ParamByName('texto').AsString := tText;
    Open;
    tNumero  := FieldByName('numero').AsInteger;
    if tNumero > 0 then
      Edit1.Text := tText + FormatFloat( '#',(tNumero) )
    else
      Edit1.Text := tText + FormatFloat( '#',tValor );
   end;

end;
Lo que sucede es que quiero generar un código alfanumerico en postgresql, que contenga 3 letras y numeros, algo asi
TPT1, TPT2, ..., .., TPT100, .., TPT2300, así sucesivamente. con este código solo genera hasta el numero diez y luego todos son 10, algo esta fallando y no me he dado cuenta.
Responder Con Cita
  #2  
Antiguo 04-07-2020
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.038
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Bien, aunque no tiene nada que ver con SQL.
Responder Con Cita
  #3  
Antiguo 04-07-2020
Avatar de mamcx
mamcx mamcx is offline
Moderador
 
Registrado: sep 2004
Ubicación: Medellín - Colombia
Posts: 3.911
Poder: 25
mamcx Tiene un aura espectacularmamcx Tiene un aura espectacularmamcx Tiene un aura espectacular
Cita:
Empezado por pepesoft Ver Mensaje
TPT1, TPT2, ..., .., TPT100, .., TPT2300, así sucesivamente. con este código solo genera hasta el numero diez y luego todos son 10, algo esta fallando y no me he dado cuenta.
Y donde los generas? Lo que haces es cortar y no aumentar...
__________________
El malabarista.
Responder Con Cita
  #4  
Antiguo 04-07-2020
pepesoft pepesoft is offline
Miembro
 
Registrado: ago 2014
Posts: 15
Poder: 0
pepesoft Va por buen camino
Bueno quizás no me deje entender, lo que quiero es incrementar el numero
TPT1
TPT2
TPT3
etc, así sucesivamente.
Responder Con Cita
  #5  
Antiguo 04-07-2020
Avatar de mamcx
mamcx mamcx is offline
Moderador
 
Registrado: sep 2004
Ubicación: Medellín - Colombia
Posts: 3.911
Poder: 25
mamcx Tiene un aura espectacularmamcx Tiene un aura espectacularmamcx Tiene un aura espectacular
Para eso debes usar una secuencia y quizas + una función en postgresql.

Código SQL [-]
CREATE SEQUENCE next_tpt;

SELECT CONCAT('TPT-', nextval('next_tpt'))
__________________
El malabarista.
Responder Con Cita
  #6  
Antiguo 06-07-2020
Avatar de gatosoft
[gatosoft] gatosoft is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Bogotá, Colombia
Posts: 833
Poder: 21
gatosoft Va camino a la fama
Creo que el problema es el typecast

haces un MAX de una cadena de texto... y luego esa cadena la conviertes a entero

Código SQL [-]
MAX(SUBSTR(codigo,4))::integer

tal vez si haces el cast interno, y luego aplicas el max, la respuesta sea otra

Código SQL [-]
MAX(SUBSTR(codigo,4)::integer)
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
Ayuda BD Access? Ayuda al modificar!! DarkArias Conexión con bases de datos 4 24-08-2013 23:47:41
Instalar Ayuda (.HLP) en la Ayuda de Delphi? MasterXP Varios 6 12-04-2006 06:57:49
Ayuda para crear ayuda... Gabriel2 Varios 2 10-06-2005 00:15:18
ayuda con strtofloat, ayuda punto flotante TURING Varios 5 30-04-2004 08:03:59
Ayuda Con Instalacion De Archivos De Ayuda Legolas Varios 1 01-12-2003 14:48:03


La franja horaria es GMT +2. Ahora son las 10:42:22.


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