Como capturar una variable de Firebird en Delphi
Buenas comunidad, tengo un problema, hace no mucho que uso delphi y quisiera saber como puedo hacer consultas con el text de un edit y al mismo tiempo capturar esa variable.
Para dejarme entender tengo esta consulta en firebird. Select Sum(monto) from Montos WHERE NOMBRES = 'Roberto Ramirez' AND CAST(FECHA as DATE) = CURRENT_DATE Teniendo esa consulta sumó el monto del campo monto de dicha persona (En este caso Roberto Ramirez) en la fecha actual. Ahora quiero llevar eso a un IBQuery en Delphi7, pero que en vez de encontrar a Roberto Ramirez, use el dato de un Edit para buscar a la persona que yo ponga en el text del edit y completando dicha consulta, agarrar el SUM y ponerlo dentro de una variable int llamada monto dentro de Delphi, hasta el momento tengo esto dentro de un boton. IBQuery1.Close(); IBQuery1.SQL.Clear; IBQuery1.SQL.Add('Select Sum(monto) from Montos'); IBQuery1.SQL.Add('WHERE NOMBRES = '+ENOMBRE.Text); IBQuery1.SQL.Add('AND CAST(FECHA as DATE) = CURRENT_DATE'); IBQuery1.ExecSQL; Monto := IBQuery1.FieldByName('SUM').AsInteger; ShowMessage(InttoStr(Monto)); Pero me sale un error con 'Token unknow Ramirez' (Buscando el nombre de la consulta anterior en el edit), cual es el error que tengo y que codigo puedo usar para lograr lo que busco, de antemano les agradezco mucho amigos, puesto que busco y busco y no encuentro algo que me sirva :( |
Hola, te recomiendo que uses parámetros.
Y recuerda usar etiquetas cuando pongas código. Bienenido a clubdelphi :) |
Como capturar una variable de Firebird en Delphi
1 Archivos Adjunto(s)
Cita:
Pero ahora me aparece el siguiente error 'Empty SQL Statement' probe quitando el IBQuery.Open(), pero me aparece el error 'Use open for a select Statement'. a que se puede deber. Lo uso en SQL y me da un solo dato por lo que la columna 0 me debería devolver ese dato, que puede estar mal? |
Quita esa línea. |
Como capturar una variable de Firebird en Delphi
1 Archivos Adjunto(s)
Ahora me aparece 'Use Open for a Select Statement' dejo el error en adjunto :(
No se a que se puede deber. |
Quería decirte que quitaras el .Open de ahí, pero que lo pusieras en lugar del ExecSql.
El Open es cuando se hace Select. El ExecSql cuando es delete, insert, update. |
Acaba de funcionar, te agradezco mucho, no conozco mucho de Delphi pero esto me ayuda a aprender mucho, deje una recomendación de reputación en tu nombre, gracias :D
|
Pues mira este hilo.
De ahí te recomiendo La cara oculta de Delphi 4, que está enfocado principalmente a bases de datos. Aparte, en nuestro FTP encontrarás gigas de información, cursos, programas, componentes, libros, ejemplos, etc. |
Por cierto, los paréntesis en close y open también sobran.
|
Cita:
Interpreto que nombres es un string, por eso agregue el QuotedStr Prueba y avisame. Saludos. |
La franja horaria es GMT +2. Ahora son las 06:52:19. |
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