 |
Club Builder Foro de C++Builder en español
|
| Ver tema anterior :: Ver tema siguiente |
| Autor |
Mensaje |
Romina Invitado
|
Publicado: Mie 08 May, 2002 4:30 am Asunto: POR FAVOR AYUDA!!!! |
|
|
Hola, necesito una ayudita, resulta que estoy desrrollando una aplicaciòn con bases de datos access y tengo 2 problemas: tengo un dato que es entregado por el usuario en un TEdit y debe ser un còdigo numérico, entonces para utilizar el número dentro del programa lo convierto mediante StrToInt(Edit->Text). Necesito proteger el programa para que si se ingresan caracteres yo pueda arrojar un mensaje de error, pero no he podido, trato con try, pero no me resulta. Lo otro es que necesito ordenar mi base de datos de acuerdo a una combinación de datos de 2 columnas, pero no logro crear índices compuestos(creo que esto no se puede hacer para access).....O por último poder presentar el QReport ordenado. Por favor si alguien puede ayudarme, lo agradeceré mucho.
|
|
| Volver arriba |
|
 |
Claudio Invitado
|
Publicado: Mie 08 May, 2002 6:54 am Asunto: POR FAVOR AYUDA!!!! |
|
|
HOLA, al tratar de validar los datos que están siendo ingresados el try y Catch no sirven ya que estos verifican cosas como (algo dividivo por cero) en donde tu programa se cae o podría quedar pegado, ok eso es lo primero.Para validar lo que estas ingresando en un TEdit lo puedes hacer mediante el evento OnKeyPress por ejemplo: void __fastcall TForm1::Edit1KeyPress(TObject *Sender, char &Key) { if((Key>='a')&&(Key<='z')) { Label1->Caption=Key; } } Este código mostrará en el Label solamente las letras entre la a y z minusculas, si presionas un número o MAYUSCULAS no pasará nada, OK |
|
| Volver arriba |
|
 |
Mónica Invitado
|
Publicado: Mie 08 May, 2002 6:55 am Asunto: POR FAVOR AYUDA!!!! |
|
|
| Hola Romina, solo te puedo ayudar con la primera pregunta, porque de bases de datos, ni idea (de momento). Si quieres mostrar un mensaje de error cada vez que el usuario introduce un caracter no numérico prueba a poner el siguiente código en el evento OnKeyPress del Edit: if((Key<'0')| |(Key>'9')) ShowMessage("ERROR"); Otra forma de impedir que el usuario introduzca estos caracteres es que simplemente no se escriban en el Edit, para ello escribes en el mismo evento el siguiente código: if((Key<'0')| |(Key>'9')) Edit->ReadOnly=true; Espero que te sirva de ayuda. Un saludo!
|
|
| Volver arriba |
|
 |
Claudio Invitado
|
Publicado: Mie 08 May, 2002 7:08 am Asunto: POR FAVOR AYUDA!!!! |
|
|
| y por último en la forma debes tener un DBGrid1,DataSource1 y Query1 ok ahora los debes enlazar (en las propiedades del objeto o por código) Query1->DatabaseName=TuBase (el Alias) DataSource1->DataSet=Query1; DBGrid1->DataSource=DataSource1; OK ahora a lo que interesa Query1->Close(); Query1->SQL->Clear(); Query1->SQL->Add("select * from tabla where edad > 18 order by rut,edad"); Query1->ExecSQL(); prueba a ver que pasa, quizá falte algún enlace entre los componentes,espero haber ayudado. CHAOOO. |
|
| Volver arriba |
|
 |
Claudio Invitado
|
Publicado: Mie 08 May, 2002 7:08 am Asunto: POR FAVOR AYUDA!!!! |
|
|
| y por último en la forma debes tener un DBGrid1,DataSource1 y Query1 ok ahora los debes enlazar (en las propiedades del objeto o por código) Query1->DatabaseName=TuBase (el Alias) DataSource1->DataSet=Query1; DBGrid1->DataSource=DataSource1; OK ahora a lo que interesa Query1->Close(); Query1->SQL->Clear(); Query1->SQL->Add("select * from tabla where edad > 18 order by rut,edad"); Query1->ExecSQL(); prueba a ver que pasa, quizá falte algún enlace entre los componentes,espero haber ayudado. CHAOOO. |
|
| Volver arriba |
|
 |
t-mac Invitado
|
|
| Volver arriba |
|
 |
cambus Invitado
|
Publicado: Mie 08 May, 2002 5:46 pm Asunto: POR FAVOR AYUDA!!!! |
|
|
| Hola Romina, para evitar que alguien escriba algo que no sea un numero en un Edit, lo mas sencillo es poner en el evento OnKeyPress del Edit: if((Key<'0')| |(Key>'9')) {Key=0;}
|
|
| Volver arriba |
|
 |
elgatop Invitado
|
Publicado: Jue 09 May, 2002 6:14 am Asunto: POR FAVOR AYUDA!!!! |
|
|
puedes hacer esto if(!isdigit(Key)) Key = 0;en el evento OnKeyPress para que solo resiva numeros pero si lo que quieres es mostrar el error claro que lo puedes hacer con try y catch su poniendo ue lo tienes en un Edit1 try { IntToStr(Edit1->Text); } catch(...) { ShowMessage("Tu mensaje"); } mientras estas compilando se salta al error que presenta el compilador pero ya cuando la corres desde el exe ya funciona perfectamente...... para presentar el report ordenado puedes tomar un Query y en la propiedad SQl despues que introduces la consulta la ordenas con order by campo,campo1,campon |
|
| Volver arriba |
|
 |
Manolo Invitado
|
Publicado: Jue 09 May, 2002 6:59 am Asunto: POR FAVOR AYUDA!!!! |
|
|
| Hola Romina Con respecto a la primera pregunta, yo uso atoi(Edit1->Text.c_str()); Esta función te convierte el texto a entero, de no encontrar nada o sólo caracteres te devuelve cero, si también se encuentra números te convierte hasta el primer carácter no numérico. De base de datos no tengo ni idea Saludos.
|
|
| Volver arriba |
|
 |
|
|
No puedes publicar temas nuevos en este foro No puedes responder a temas en este foro No puedes editar tus mensajes en este foro No puedes borrar tus mensajes en este foro No puedes votar en las encuestas de este foro
|
© 2002–2026 Club Builder · Funciona con phpBB.
|