• Viernes 8 de Noviembre de 2024, 19:20

Autor Tema:  Consulta Sql  (Leído 1197 veces)

marioneta

  • Nuevo Miembro
  • *
  • Mensajes: 4
    • Ver Perfil
Consulta Sql
« en: Sábado 19 de Agosto de 2006, 18:45 »
0
Hola!
Estoy usando c++ builder, interbase .
Queria saber si alguien me podia decir si puedo acceder de alguna manera lo que me devuevle una consulta.
Es decir tengo lo siguiente:

QueryInicio->SQL->Add("select DIRECTIVO from USUARIOS where CONTRASENIA = :con and USUARIO = :us");

Donde DIRECTIVo es un string, bueno pues yo quiero acceder al valor ese de DIRECTIVO para comprobar que valor tiene una vez realizada la consulta.

Por favor si alguien saber como resolverlo o que información debo de mirar muchas gracias, es que por más que busco no lo encuentro
Muchas gracias!! :)

wako13

  • Miembro activo
  • **
  • Mensajes: 36
    • Ver Perfil
Re: Consulta Sql
« Respuesta #1 en: Sábado 19 de Agosto de 2006, 19:28 »
0
Hola, puedes acceder a lo que trae la consulta de esta forma:

Código: Text
  1. QueryInicio->SQL->Clear();
  2. QueryInicio->SQL->Add("select DIRECTIVO from USUARIOS where CONTRASENIA = :con and USUARIO = :us");
  3. QueryInicio->SQL->Open();
  4.  
  5. //suponiendo que DIRECTIVO es de tipo cadena se crea una variable la cual va a tomar el valor que devuelve la consulta
  6.  
  7. AnsiString DIRECTIVO_ = QueryInicio->FieldByName("DIRECTIVO")->AsString;
  8.  
  9. QueryInicio-SQL->Close();
  10.  
  11.  

Otra forma de tomar los datos que trae una consulta seria por medio de procedimientos almacenados creando parametros de salida...

Saludos Cordiales.

marioneta

  • Nuevo Miembro
  • *
  • Mensajes: 4
    • Ver Perfil
Re: Consulta Sql
« Respuesta #2 en: Sábado 19 de Agosto de 2006, 20:09 »
0
Antes de nada gracias por contestarme :)

Me sigue sin funcionar :(

Lo que quiero hacer es el usuario introduce su dni y su contraseña. Yo hago una consulta con ese dni y esa contraseña y saco el valor de la variable directivo, que me indicara si es un directivo o no , solo tomara los valores s y n.
Y dependiendo de si es directivo o no muestro un mensaje.
Mi problema viene a que en todo momento me muestra el tercer mensaje "Usuario o contrasenia invalida" independientemente de que introduzca datos validos.
Yo creo que es por que no se le asigna nada a la variable DIR( donde se almacena el resultado de mi consulta) porque intento mostrar el valor de DIR y es vacio en todo momento

Aqui dejo el codigo por si alguien sabe que puede ser:


void __fastcall Tdm::OkClick(TObject *Sender)
{
    String us=Edit2->Text;
    String con=Edit4->Text;
    QueryInicio->SQL->Clear();
   QueryInicio->SQL->Add("select DIRECTIVO from USUARIOS where CONTRASENIA = :con and USUARIO = :us");
   QueryInicio->Open();
  String DIR=QueryInicio->FieldByName("DIRECTIVO")->AsString;
  QueryInicio->Close();
  Edit1->Text=DIR;

  if(DIR=="S")
  { ShowMessage("Directivo");
     return;
  }
   else if(DIR=="N")
       ShowMessage("Administrativo");
   else
       ShowMessage("Usuario o contrasenia invalido");



}


Gracias por perder un poco el tiempo leyendo mis dudas :)