![]() |
![]() |
![]() |
![]() |
![]() |
FTP | ![]() |
![]() |
CCD | ![]() |
![]() |
Buscar | ![]() |
![]() |
Trucos | ![]() |
![]() |
Trabajo | ![]() |
![]() |
Foros | ![]() |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
![]() |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Variables en sentencias sql
Que tal como estan.
Estoy usando MySql 4.0 y MySql Front, alguien sabe como usar variables o parametros en las consultas de MySql, es decir hago una consulta por ejemplo. Select Nombre,Direccion From Datos where nombre='algo' Donde 'algo' es la variable o parametro. Les agradesco su atencion y ayuda. |
#3
|
||||
|
||||
ahhh osea que si manejo un edit por ejemplo para hacer una busqueda es asi??
Código:
Select Nombre,Direccion From Datos where nombre=:edit.text |
#4
|
||||
|
||||
No.
Ten presente que Delphi* y SQL son dos lenguajes completamentes separados. SQL no podrá entender qué le quieres decir con edit1.text ya SQL sólo entiende de nombres de tablas y campos. De hecho SQL ni siquiera entiende los dos puntos. Estos son simplemente para que la componente Query sepa que se trata de un parámetro pero tú tienes que proporcionarles es valor. Por ejemplo:
Si Edit1.Text contiene 'juan pérez', al servidor SQL lo que le llega es:
* Como esta pregunta está en el foro de MySql realmente no estoy cierto de que se refiera al uso de componentes con Delphi. // Saludos |
#5
|
||||
|
||||
SISISI pregunataba para delphi entonces no estsba perdido gracias sigan con lo suyo
|
#6
|
||||
|
||||
Y si yo uso un DataSet y lo que quiero es insertar en mi tabla productos, es algo parecido a esto??
Código:
procedure TForm2.Button3Click(Sender: TObject); var algo : string begin DataSet1.InsertSql.Add('insert into producto(cod_prod) values (:algo)'); DataSet1.ParamByName('algo').AsString := Edit1.Text; end; |
#7
|
||||
|
||||
Cita:
![]() Por otro lado, observa que así como usé AsString en el ejemplo, podrías usar AsInteger, AsFloat, AsBoolean, AsDateTime, etc. Escoge el más adecuado al tipo de datos del campo en la tabla. // Saludos |
#8
|
||||
|
||||
![]() Cita:
Lamento diferir con vos en este punto, pero esto no es cierto en todos los casos. Muchos de los motores SQL existentes hoy en día proveen, a través de sus distintos API's, soporte para el uso de parámetros. De hecho, en algunos (como oracle por ejemplo), es recomendable que se usen parámetros, pues se facilita la reutilización de planes de ejecución minimizando la carga por este proceso en el servidor. Cuando usas parámetros, y el servidor los soporta, delphi envía la sentencia convirtiendo los identificadores de parámetros si es necesario, de manera que sea correctamente interpretado. Podria enviarse entonces, por ejemplo:
y luego via API asigna el parámetro como 'juan perez'. Hasta luego. ![]()
__________________
Juan Antonio Castillo Hernández (jachguate) Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate |
#9
|
|||
|
|||
Explicacion
Gracias por su aportacion, explico que componentes uso,
uso Mysql version 4.0 y MysqlFront como visor, desde aqui quiero hacer consultas para filtrar datos y guardarlas para usos posteriores, obviamente despues la condicion cambiara, quiero solo cambiar el valor de la variable sin tener que editar la consulta. segun lo que dice Roman la consulta quedaria: Select nombre, direccion from datos where nombre=:algo Ok, y perdonen si peco de burro, pero donde declaro la variable o parametro algo y cuando ejecuto la consulta como le doy los valores. |
#10
|
||||
|
||||
Cita:
![]() // Saludos |
#11
|
||||
|
||||
Cita:
![]() No creo que esto se pueda hacer con MySqlFront pero tendría que revisarlo. // Saludos |
#12
|
|||
|
|||
Ya decia yo
Si tambien tengo la impresion de que no se puede, y para hacerlo habria que usarlo desde delphi u otro lenguaje con componentes que permitan usar parametros. Pero uno de mis jefes esta convencido en que si se puede, claro el nunca lo ha hecho, pero esta "segurisimo", y si no lo logro yo soy el que no sirve, cualquier parecido a la realidad es una porqueria.
|
![]() |
|
|
![]() |
|