Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 08-06-2004
Huer Huer is offline
Miembro
 
Registrado: may 2003
Posts: 21
Poder: 0
Huer Va por buen camino
Talking Problemas al generar una clave unica

Hola Amigos delphianos.

He avanzado ya bastante gracias a esta ayuda.
mi consulta es la siguiente

tengo una tabla en SQL 2000, en un servidor y la conexión la realizo a través de Ado todo hasta aqui todo bien.

pero quiero generar una clave unica con los valores de dos campos, ambos numeric 13.

pero el problema esta cuando los grabos lo hace con un valor totalmente diferente al real, el codigo que ejecuto es el siguiente:


procedure TFoInscrip.CEditCuentaKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
If Key = Vk_return then
begin
if dmm.ADOTOrdenPago.Locate('cuentaordenpago',CeditCuenta.Text, []) then
begin
Bplanillaexiste := True;
CeditOrden.Text := dmm.ADOTOrdenPago.fieldBYname ('ORDENPAGO').AsString;
DeditIngreso.Text:= dmm.ADOTOrdenPago.fieldBYname('FECHAORDEN').AsString;
MkRut.Text := dmm.ADOTOrdenPago.fielDByname('RutProveedores').AsString;
if dmm.ADOTProveedores.Locate('rutproveedores',MkRut.Text,[]) then
begin
MkRut.Text := dmm.ADOTProveedores.fieldbyName('RutProveedores').AsString;
EditNombreProv.Text:= dmm.ADOTProveedores.fieldbyName('empresa').AsString;
end;
end;
ShowMessage('No existe cuenta');
CEditOrden.SetFocus;
end;

end;

Gracias por leer y ayuda en ejecucion de este proyecto...
salu2
Responder Con Cita
  #2  
Antiguo 08-06-2004
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.932
Poder: 27
delphi.com.ar Va por buen camino
Cita:
Empezado por Huer
pero el problema esta cuando los grabos lo hace con un valor totalmente diferente al real
¿Qué quieres decir con esto? ¿No guarda los valores que tu le pasas?
Por otro lado, el código que nos muestra parece parte del proceso de búsqueda...
Como extra, utilizar las etiquetas [delphi] para mostrar el código de una forma mas amena.

Saludos!
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita
  #3  
Antiguo 08-06-2004
Huer Huer is offline
Miembro
 
Registrado: may 2003
Posts: 21
Poder: 0
Huer Va por buen camino
Lo que quiero decir es lo siguiente:

existen dos campos edit1 lo que ingreso es : 13300012998 en el segundo edit2 ingreso ambos por teclado : 1523 y la clave que tiene que generarse es la 133000129981523, mientras que los ultimos numeros se agregen al numero anterior y esto lo trato de realizar tomando el edit1 lo multiplico por 10000 y luego le sumo el edit2. pero me graba y todo pero el mumero no es el correcto por ejemplo -1485935123 o 18458210322 nada que ver con el valor correcto. y el codigo que ingreso esta más arriba.
gracias por responder
Responder Con Cita
  #4  
Antiguo 08-06-2004
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.932
Poder: 27
delphi.com.ar Va por buen camino
Sigo sin entender cual es al relación con el código anterior. ¿Cuál es el tipo de dato del campo dónde deseas guardar esta clave?
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita
  #5  
Antiguo 08-06-2004
Huer Huer is offline
Miembro
 
Registrado: may 2003
Posts: 21
Poder: 0
Huer Va por buen camino
var clavet : integer;
begin
clavet := 10000;

CEditpaso.Value := (Clavet+CEditCuenta.Value); dmm.ADOTOrdenPago.Append;
dmm.ADOTOrdenPago.FieldByName('CUENTAOR').Value := CEditpaso.Value;
dmm.ADOTOrdenPago.FieldByName('CUENTA').Value:= CEditCuenta.Text;
dmm.ADOTOrdenPago.FieldByName('ORDENP').AsInteger:= n.AsInteger;
dmm.ADOTOrdenPago.FieldByName('FECHA').AsString:=DEditIngreso.Text;
dmm.ADOTOrdenPago.FieldByName('rutproveedores').Value := MkRut.Text;
dmm.ADOTOrdenPago.Post;



Lo siento este era el codigo correcto

en donde dice cuantaor debo grabar el numero 133000129981523
y en cuenta el valor de 1523
y los otros no tengo problemas
pero en el cuentaor me graba cualquier cosa memos el numero
Responder Con Cita
  #6  
Antiguo 09-06-2004
Mick Mick is offline
Miembro
 
Registrado: may 2003
Posts: 405
Poder: 21
Mick Va por buen camino
Lo siento pero casi no se entiende lo que quieres decir,
por el tipo de problema parece que estas trabajando con numeros demasiado
grandes.
Un integer es de 32 bits, de modo que 2 elevado 32 da: 4294967296 valores diferentes. Como los enteros son con signo, se puede guardar un valor entre -2 mil millones y +2 mil millones mas o menos.
El numero que estás manipulando se pasa de esos valores.

Saludos
Miguel
Responder Con Cita
  #7  
Antiguo 09-06-2004
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.932
Poder: 27
delphi.com.ar Va por buen camino
Insisto en que no se te entiende, con respecto a lo que dice Mick, hay tipos numéricos desde Delphi el Int64, que soportan sin problemas los números que intentas usar, pero viendo que no necesitas verdaderamente hacer ninguna operación aritmética, yo te recomendaría manejarlos como string.

Saludos!
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
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


La franja horaria es GMT +2. Ahora son las 10:32:58.


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