FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
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 |
#2
|
||||
|
||||
Cita:
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. |
#3
|
|||
|
|||
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 |
#4
|
||||
|
||||
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. |
#5
|
|||
|
|||
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 |
#6
|
|||
|
|||
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 |
#7
|
||||
|
||||
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. |
|
|
|