FTP | CCD | Buscar | Trucos | Trabajo | Foros |
#1
|
||||
|
||||
SQL y Delphi
Hey, como va?
Como puedo manipular una base de datos utilizando SQL? En realidad lo que quiero saber es como establecer la conexion entre la base de datos y el programa. |
#2
|
||||
|
||||
Tendrías que decirnos qué base de datos piensas usar.
// Saludos |
#3
|
||||
|
||||
Mi idea es aprender SQL para poder conectarme a cualquier base de datos, pero bueno voy a empezar con una Acces.
|
#4
|
||||
|
||||
En tal caso una opción son las componentes ADO.
Para hacer la conexión necesitas una componente TADOConnection y configurar su propiedad ConnectionString. Para ello lo más sencillo es que abras el editor de dicha propiedad desde el inspector de objetos y oprimas el botón "Build...". En la ficha "Proveedor" selecciona "Microsoft Jet 4.0 OLE DB Provider" y en la ficha "Conexión" seleccionas la base de datos de Access. Una vez configurada la cadena de conexión pones en false la propiedad LoginPrompt (a menos que requieras un usuario y contraseña para acceder a la base). Para hacer las consultas SQL requieres una componente TADOQuery. La consulta en sí la pones en la propiedad SQL y ejecutas la consulta ya sea con el método Open o con ExecSQL dependiendo del tipo de consulta de que se trate. El primer método es para consultas que regresan registros como SELECT y el segundo para consultas que no regresan registros como INSERT, UPDATE y DELETE. Puedes usar parámetros en tus consultas, por ejemplo:
Aquí los dos puntos que preceden a "nombre" y "edad" indican que éstos son parámetros. Antes de ejecutar una consulta con parámetros debes asiganre valores a éstos. Para ello usas la propiedad Parameters del ADOQuery y su método ParamByName:
Come ves, ParamByName regresa un objeto de tipo TParameter y debes usar el método AS--- que corresponda al tipo de datos. En el ejemplo, una vez sustituidos los parámetros la consulta queda:
que te buscará todos los registros de la tabla `personas` cuyo nombre comienza con "PEREZ" y cuya edad es mayor de 24 años. Una vez ejecutada la consulta (en este caso con Open) puedes recorrer los registros resultantes con el método Next del ADOQuery. En cada registro puedes acceder a los campos mediante el método FieldByName:
Como te darás cuenta, Eof es una propiedad de ADOQuery que determina si ya alcanzaste el final de los registros. También puedes conectar el ADOQuery mediante un TDataSource a cualquier componente de acceso a datos como un TDBNAvigator, TDBGrid, TDBEdit, etc. // Saludos |
#5
|
||||
|
||||
Ok, muchas gracias por tu Mini-Tutorial de SQL en Delphi.
Ya pude hacer la conexion y ahora voy a empezar a profundizarme mas en el tema. |
#6
|
||||
|
||||
Saludos
Este hilo es un poco viejor pero... Cita:
Reinicio este hilo ya que estoy teniendo problemas con este componentes y su captura de parametros: Parameters Objects is improperly defined. Incosistent o imcomplete information was provider. Ese es el error que me tira. Hasta luego
__________________
Van Troi De León (Not) Guía, Code vB:=Delphi-SQL, ¿Cómo? Viajar en el tiempo no es teóricamente posible, pues si lo fuera, ya estarían aqui contándonos al respecto! |
#7
|
||||
|
||||
Echando un vistazo rápido, veo que fecha lo tienes repetido, y además como ":fecha:" empieza y termina con los 2 puntos.
Error de pegado? Un saludo
__________________
Si usted entendió mi comentario, contácteme y gustosamente, se lo volveré a explicar hasta que no lo entienda, Gracias. |
#8
|
||||
|
||||
Saludos
Cita:
Cita:
Aun sigue dandome error.
__________________
Van Troi De León (Not) Guía, Code vB:=Delphi-SQL, ¿Cómo? Viajar en el tiempo no es teóricamente posible, pues si lo fuera, ya estarían aqui contándonos al respecto! Última edición por vtdeleon fecha: 22-08-2005 a las 15:29:56. |
#9
|
||||
|
||||
No veo error alguno salvo el bug comentado en las MSDN de mocosoft al parecer hay que establecer el Parameter.Size para los parámetros de texto
Ya me contarás si es cierto. Aunque es código VB, al ser fallo del ADO, digo yo que se podrá solucionar por delphi tambien. Cita:
__________________
Si usted entendió mi comentario, contácteme y gustosamente, se lo volveré a explicar hasta que no lo entienda, Gracias. |
#10
|
||||
|
||||
Saludos
Ya solucione el problema y era este Cita:
A pesar de que los parametro se declaren con igual nombre, son diferentes. Asi que lo declare con diferentes nombres. Cita:
__________________
Van Troi De León (Not) Guía, Code vB:=Delphi-SQL, ¿Cómo? Viajar en el tiempo no es teóricamente posible, pues si lo fuera, ya estarían aqui contándonos al respecto! |
|
|
|