FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
||||
|
||||
entrando en el mundo ADO
Visto lo visto, y como no he sido capaz de encontrar una solución a mi problema he decidido cambiar y empezar a utilizar ADO para conectarme a mi base de datos.
La realidad es que no se nada acerca de ADO, pero es de la única forma de la que he conseguido solucionar una cosa (crear una tabla en access mediante código). En paradox ya lo tenía solucionado, pero por más que he buscado y he investigado no he sido capaz de hacerlo para access. Ya creo tablas nuevas con ADO, parece que no es muy complicado de utilizar, ahora me gustaría eliminar tablas. Toda la ayuda que me puedan dar me será útil seguro, o algún hilo que explique alguna cosilla de ADO para ir familiarizándome con el. El cambio lo realizo, ya que es una aplicación para una base de datos personal y acabar la aplicación no me urge. Y así podré resolver los problemas futuros más rápidamente. Muchas gracias de antemano y un saludo a todos los del foro.
__________________
De lo bueno lo mejor, de lo mejor lo superior. |
#3
|
||||
|
||||
Hola,
yo creo que lo único que tienes que hacer es poner un ADOCommand que envie a la conexión el Drop Table que te comenta cadetill. Saludos! |
#4
|
||||
|
||||
Gracias por contestar tan rápido. Es justo lo que estaba probando antes de leer vuestros mensajes.
El código que he puesto es el siguiente:
Pero no me la elimina, me salta del 'Execute' al 'except'. Es lo primero que he probado, porque al crear la tabla lo he hecho con 'CREATE TABLE nombre_tabla' y si que me ha funcionado. Gracias.
__________________
De lo bueno lo mejor, de lo mejor lo superior. |
#5
|
|||
|
|||
Hola Weke
Sin responder a tu pregunta, te daré un consejo. En el manejo de errores, es conveniente saber el error que realmente te da Delphi. Es más fácil capturar los posibles fallos del programa. Para ello, puedes hacer algo así:
Es una buena costumbre |
#6
|
||||
|
||||
Gracias por el consejo cadetill.
Ya he conseguido que me borre correctamente la tabla. Ahora, todo lo que crean que sea interesante saber acerca de ADO, me vendrá bien. Si me sale alguna dudas más os la haré llegar. Muchas gracias otra vez a todos. Saludos.
__________________
De lo bueno lo mejor, de lo mejor lo superior. |
#7
|
||||
|
||||
He colocado un 'ADOConnection' en el formulario principal. Lo he declarado como publico para que todos los componentes se conecten a él.
He asignado los datos que tenía en la propiedad "ConnecionString" del 'ADOCommand'. Pero cuando ejecuto la aplicación, me da el error siguiente: Cita:
Ya no he tocado ninguna propiedad más. ¿Debería hacer algo más o así ya debería funcionar? Muchas gracias y un saludo.
__________________
De lo bueno lo mejor, de lo mejor lo superior. |
#8
|
||||
|
||||
La conexión te funciona en tiempo de diseño y te da error al ejecutar? O la creas por código?
|
#9
|
||||
|
||||
Fijate en la propiedad Active debes ponersela a True,
yo al contrario que tú he trabajado siempre con Ado frente a Access o Sql Server, muy buena elección Ado, Te felicito ahora dejate darte unos consejos, pon un Datamodule donde solo tendrás el AdoConnection y pasasela a todo formulario que crees, no hace falta de este modo crearla como Public, ya lo será, el segundo tema a plantearte es el siguiente trabajara tus aplicaciones Cliente/Servidor, con muchos registros, supongamos que me respondes que si entonces el proximo paso será un AdoQuery donde lo conectaras al AdoConnection y pondrás tus propios Selects, Agregaras un DataSouce y asi ya tienes un Recodset Actualizable,,,, empieza por aqui Saludos. |
#10
|
||||
|
||||
La conexión la creo en tiempo de diseño, en tiempo de ejecución solo voy a conectarla (cuando cree la aplicación) y desconectarla (cuando la cierre):
Pero de momento no la he dejado a false porque me da el error antes de crear la aplicación, y me sigue dando el error. Gracias.
__________________
De lo bueno lo mejor, de lo mejor lo superior. |
#11
|
|||
|
|||
En la cláusula USES tienes la referencia a ADOdb?
|
#12
|
||||
|
||||
Gracias, Fnadalo, por tus consejillos. Los pondré en práctica en cuanto pueda.
Ahora respondiendo a la pregunta de Nelet, si tengo la referencia a ADODB en el uses.
__________________
De lo bueno lo mejor, de lo mejor lo superior. |
#13
|
||||
|
||||
Fnadalo, ya he modificado lo del Datamodule que me indicaste, funciona muy bien, gracias otra vez.
Con respecto a si utilizao muchos registros, pues de 100 para arriba. Antes tenía hechas una serie de consultas que me funcionaban correctamente, pero en ADO no se si cambiará en algo. La verdad es que no he tocado nada de la consulta que tenía, simplemente le he cambiado el nombre al ADOQuery y he ejecutado, pero la consulta no me devuelve nada. Un ejemplo de consulta es la siguietne: Si hay algún error, gracias por indicármelo. Saludos.
__________________
De lo bueno lo mejor, de lo mejor lo superior. Última edición por weke fecha: 08-06-2004 a las 07:55:36. Razón: faltaban datos |
#14
|
||||
|
||||
Weke te paso un código que es como lo utilizo este genera
un Abm a partir de unos campos y una tabla, Fijate en la linea que tengo el Like. Última edición por __cadetill fecha: 08-06-2004 a las 09:27:56. Razón: poner etiqueta Delphi |
#15
|
||||
|
||||
He hecho la siguiente modificación pero sigue sin devolverme nada:
Seguiré probando.
__________________
De lo bueno lo mejor, de lo mejor lo superior. Última edición por __cadetill fecha: 08-06-2004 a las 09:25:29. Razón: Poner salto de linea para evitar scroll |
#16
|
||||
|
||||
Weke
no Admite el * en su lugar debes poner lo siguiente WHERE Nombre like QuotedStr(aux)+ '%' Pruebalo y dime cosas... |
#17
|
||||
|
||||
Si analizas lo que estás enviando como SQL, será algo como
SELECT * FROM TABLA where CAMPO LIKE "*'valor_de_aux'*" Por eso no te devuelve nada. Código:
Prueba a poner Query.Add('SELECT * ... WHERE CAMPO LIKE '+Quotedstr('%'+valor_de_aux+'%')) Un saludo
__________________
Cuando los grillos cantan, es que es de noche - viejo proverbio chino - |
#18
|
||||
|
||||
He cambiado los '*' por '%', pero sigue sin devolverme nada.
También he puesto directamente lo que tu me has dicho con el mismo resultado, nada. La verdad es que me extraña mucho, pero seguro que es una tontería. Tenía puesto '*' porque es el comodín de access, con el '%' no funcionaba. Gracias.
__________________
De lo bueno lo mejor, de lo mejor lo superior. |
#19
|
||||
|
||||
Gracias fjcg02, era eso, que no colocaba en el sitio adecuado los comodines.
Ahora si que me funciona, probaré con el resto de consultas que tengo que realizar y si me sale algún fallito más ya os lo comento. Muchas gracias a todos por el interés y la ayuda prestada. Eso de empezar a utilizar una cosa nueva siempre te da los problemas más tontos del mundo. Saludos.
__________________
De lo bueno lo mejor, de lo mejor lo superior. |
#20
|
||||
|
||||
sigues haciéndolo como no se debe
Si vuelves a analaizar te queda "WHERE Nombre LIKE 'valorde_aux'+% order by Nombre" Necesitas generar "WHERE Nombre LIKE 'valorde_aux%' order by Nombre" Así, el códifo será Código Delphi: WHERE Nombre like ' + quotedStr(aux + '%') + ' order by Nombre' Ligero detalle Un saludete
__________________
Cuando los grillos cantan, es que es de noche - viejo proverbio chino - |
|
|
|