PDA

Ver la Versión Completa : un problemita...! por favor ayuda..! plis


CrystalBlood
19-01-2006, 19:49:30
les voy a comentar mi conflicto...! ^^
estoy usando Delphi 7
con Interbase :-D
tengo una tabla con el nombre "USUARIOS" ke contienen los sgte's campos:
COD_USUARIO (PK)
NOMBRE_USUARIO
PASSWORD_USUARIO
CODIGO_AREA (FK)

la teoria de lo ke kiero hacer es una especie de "Log In" osea... se selecciona el usuario de un combo box... y al lado se escribe la contraseña en un Edit... y si lo escrito es igual al valor almacenado en la tabla del campo PASSWORD_USUARIO... entonces.. ENTRA...
se entiende verdad.?

lo ke desencadena la accion es un boton...
------------
yo uso 4 controles para la conexion con la base de datos
3 provienen del conjunto de controles "Interbase"
ke son

* IBTable
* IBDatabase
* IBTransaction

y el ultimo objeto proviene del conjunto de controles "Data Access"

* DataSource

------------

bueno a continuacion... esta el codigo ke todavia no termine
proveniente del evento del boton...
logicamente... mi cerebro me dijo ke tengo ke usar una consulta SQL para obtener el valor de la contraseña correspondiente al codigo del usuario seleccionado en el combo box... y asi despues comparar los valores

use un control llamado "IBSQL" proveniente del conjunto de datos "Interbase" para generar la consulta...


NOTA:
DBLo_LOGIN--> es el comobo box
-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
var
Form1: TForm1;
codactual : string;
passactual : string;

procedure TForm1.Button1Click(Sender: TObject);
begin
codactual := Vartostr(DBLo_LOGIN.KeyValue);
passactual := Ed_PASS.Text;
IBSQL1.SQL := 'select PASSWORD_USUARIO from USUARIOS where COD_USUARIO = '+ codactual;
IBSQL1.ExecQuery;

end;
-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_

al kerer compilar me da un error...
el problema es ke la variable "codactual" es un string...
y la consulta es una "Tstring"
entonces me dice tipos incompatibles...

me podrian ayudar..?? por favor..?
alguna especie de convercion de datos o algo asi...
o otro control... :-D


el codigo en visual basic seria algo asi...--->
pero no encontre los respectivos metodos y propiedades de los 4 controles ke empleo en delphi....
y necesito hacer esto en delphi...

-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_

VARIABLE_CODIGO=DataCombo.SelectedItem() //Devuelve el valor del código de usuario.

CONTROL_DATA..RECORDSOURCE="SELECT PASSWORD_USUARIO FROM TABLA_USUARIO WHERE CODIGO_USUARIO="+VARIABLE_CODIGO+";"

CONTROL_DATA.REFRESH()

VARIABLE2 = CONTROL_DATA.RECORDSET("PASSWORD_USUARIO")

IF VARIABLE2 = CONTROL_EDIT.TEXT THEN
USUARIO ENTRA porque ambas contraseñas son idénticas
ELSE
USUARIO NO ENTRA porque las contraseñas no son iguales.
END IF

-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_

Muchisimas gracias.!!!

vtdeleon
19-01-2006, 20:08:04
Saludos

No tiene caso repetir el hilo en varios foros, no se gana nada con esto! Tendrán las mismas repuestas.

CrystalBlood
19-01-2006, 20:46:23
Saludos

No tiene caso repetir el hilo en varios foros, no se gana nada con esto! Tendrán las mismas repuestas.

mis mas sinceras disculpas...
disculpen el inconveniente...
me podrian ayudar por favor.?

Alfredo
19-01-2006, 20:55:08
Hola intenta cambiar esto:

IBSQL1.SQL := 'select PASSWORD_USUARIO from USUARIOS where COD_USUARIO = '+ codactual;
IBSQL1.ExecQuery;
.!!!
por esto:

IBSQL1.SQL.add( 'select PASSWORD_USUARIO from USUARIOS');
IBSQL1.SQL.add('where COD_USUARIO = '+ codactual);
IBSQL1.ExecQuery;

Espero que te sirva..

Alfredo
19-01-2006, 20:59:03
uff, se me iva...

siempre hago una limpieza antes de mandar la sentencia, asi:

IBSQL1.SQL.clear;
IBSQL1.SQL.add( 'select PASSWORD_USUARIO from USUARIOS');
IBSQL1.SQL.add('where COD_USUARIO = '+ codactual);
IBSQL1.ExecQuery;
;)

CrystalBlood
19-01-2006, 21:59:37
muchsisimas gracias..!
encerio si..!
desde hace un buen tiempo ke voy estudiando y no logre entender el comportamiento de estos controles...
estoy muy acostumbrado con el basic... y el delphi... cambia un poko :rolleyes:

pero aun asi... estoy en progreso :-D

una cuestion mas a tratar...
al ejecutarse esta linea... "IBSQL1.ExecQuery;"

keda almacenado el resultado de la consulta... verdad.?

lo ke me keda por hacer es esto--->
lo ke seria en basic

----------------------------
VARIABLE2 = CONTROL_DATA.RECORDSET("PASSWORD_USUARIO")

IF VARIABLE2 = CONTROL_EDIT.TEXT THEN
USUARIO ENTRA porque ambas contraseñas son idénticas
ELSE
USUARIO NO ENTRA porque las contraseñas no son iguales.
END IF

----------------------------

la pregunta es... como me refiero al valor devuelto al objeto "IBSQL1"??
muchisimas gracias desde ya..!
y disculpen la molestia :)

maeyanes
19-01-2006, 22:06:06
En delphi se haría de la siguiente forma:


if IBSQL1.FieldByName('PASSWORD_USUARIO').AsString = Edit1.Text then
// El usuario puede entrar
else
// El usuario no puede entrar



Saludos...

CrystalBlood
20-01-2006, 00:51:48
Muchisimas Gracias...!!! ENCERIO SI..!!!:D:D:D
no saben el peso ke me kitaron de encima..!!
yo solo tengo 16 años ^^ y ya tengo ke hacer un sistema de indole profesional... vamos a ver que sale... jejeje

una pregunta mas..! de donde puedo informarme?? osea una especie de manual/tutorial... o algo asi... por que en verdad necesito:p

osea... para simplificar.. especificamente donde aprendieron... los metodos de esos objetos... de manejo de base de datos.. .como es el "IBSQL" y todo eso...

desde ya muchisimas gracias de nuevo.!!
les actualizo de cualkier otro problemita :)

Alfredo
20-01-2006, 15:29:34
Inscribete en este site, tienes varios tutoriales muy buenos y enlaces a otras pag. tanto en español como en ingles..

http://www.firebird.com.mx

te felicito porque realmente los "chamos" (llamese generacion de relevo) estan es pensando en bobadas y muy pocos son los que toman seriedad de las cosas, estoy seguro que estas bien encaminado..;)

ContraVeneno
20-01-2006, 16:46:44
Tambien lee este hilo (http://clubdelphi.com/foros/guiaestilo.php), y este otro. (http://www.clubdelphi.com/foros/showthread.php?p=112824#post112824)..
Un saludo y bienvenido a los foros. :D

CrystalBlood
21-01-2006, 01:44:28
Gracias.!! muy amable de sus partes. !!
y gracias por los 3 links :D

realmente... ahora yo estaba de pasantia... y me kede para realizar un sistema...

y jamas en la vida habia antes usado delphi ^^ ni mucho menos interbase :cool:
ahora como macho estoy aprendiendo... jajaja forsado...

en un futuro no muy lejano le voy a meter duro con el estudio de rendering :)
pero sin directX ni Opengl... xD

cualkier duda... referente al sistema ke estoy haciendo... voy a postear por aka... ^^

saludos.. y gracias de nuevo...:D