Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 24-06-2005
Chocoslovaco Chocoslovaco is offline
Miembro
 
Registrado: jun 2005
Ubicación: Puebla, México
Posts: 66
Poder: 19
Chocoslovaco Va por buen camino
Question Novato - Aplicaciones con Base de Datos

Antes que nada Felicitarlos por este portal tan completo, y a continuación expreso mi consulta:
Soy nuevo en este entorno de desarrollo (Delphi) y necesito desarrolllar una aplicacion que trabaje con una BD de Access 97, dicha aplicacion no tiene que visualizar nada en pantalla; solo realizar una actualizacion de varios campos en varias tablas; es decir debo seleccionar los cargos (duedores) de mis clientes y actualizarlas a pagadas con su repectivos abonos. No conozco nada de como conectarme a la base de datos estuve clikeando componentes ADO y logre conectarme a la BD (a traves de asistente y la propiedad ConnectionString), pero quisiera saber si existe otra forma diferente, me refiero a si puedo colocar ese componenete en un modulo de datos pero de entrada no utilizar el asistente sino en tiempo de ejecucion conectarme y como poder empezar a realizar mis primeras consultas y recorrer las mismas. Muchas Gracias por los comentarios que puedan hacerme llegar y espero haberme expresado lo mas claro posible.

Saludos a todos
Oswaldo Jr
Responder Con Cita
  #2  
Antiguo 24-06-2005
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Poder: 10
marcoszorrilla Va por buen camino
Efectivamente puedes alojar el componente en un módulo de datos, de hecho esa es la opción más usual.

En cuanto a pasarle los valores en tiempo de ejecución, se puede pero creo que es mucho más sencillo utilizar el asistente.

Para las consultas puedes utilizar un AdoQuery.

Lo mejor es que vayas haciendo pruebas y nos vayas preguntando a medida que te surjan dudas puntuales.

Un Saludo.
__________________
Guía de Estilo de los Foros
Cita:
- Ça c'est la caisse. Le mouton que tu veux est dedans.
Responder Con Cita
  #3  
Antiguo 25-06-2005
Chocoslovaco Chocoslovaco is offline
Miembro
 
Registrado: jun 2005
Ubicación: Puebla, México
Posts: 66
Poder: 19
Chocoslovaco Va por buen camino
Muchas Gracias por responder, efectivamenete ya logre conectarme a la BD, pero ahora quiero utilizar un ADODataSet, pero no se donde colocarlo exactamente o debi usar un ADOTable?, si lo coloco en el modulo de datos como hago referencia a el desde mi formulario, o si lo coloco en el Form como lo enlazo al ADOConnection, si pudieses(n) colocarme un codigo de como referenciarlo lo agradeceria mucho.
Gracias por todo
Responder Con Cita
  #4  
Antiguo 25-06-2005
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Poder: 10
marcoszorrilla Va por buen camino
Si lo colocas en el módulo de datos, simplemente tienes que hacer "Use" en el formulario en donde pretendes utilizarlo el resto es totalmente transparente.

Un Saludo.
__________________
Guía de Estilo de los Foros
Cita:
- Ça c'est la caisse. Le mouton que tu veux est dedans.
Responder Con Cita
  #5  
Antiguo 25-06-2005
Chocoslovaco Chocoslovaco is offline
Miembro
 
Registrado: jun 2005
Ubicación: Puebla, México
Posts: 66
Poder: 19
Chocoslovaco Va por buen camino
en el area de Implemetation de mi Form, coloque: Uses <Nombre del unit donde esta mi ADO Connection>, incluso ya coloque en mi form un ADODataSet, pero hasta aqui logre llegar pues intente colocar en la propiedad DataSource, el nombre del ADOConnection, pero no se despliega nada, incluso coloque un DBGrid (solo para intentar visualizar algo) pero tampoco logro relacionarlo, disculpa mi ignorancia en esto pero que dedo colocar, ya revise alguno otros enlaces en el foro y mencionan que se debo colocar en el evento OnCreate del Form, conectarse a la BD por eso de que se pueda desactivar la conecion, no he podido lograr nada, ¿Debo utilizar algun otro componente? donde pueda colocar una sentencia SQL (en codigo), o cual es el proceso a seguir, si me proporcionan un codigo general como ayuda, seria mas facil. Gracias.
Responder Con Cita
  #6  
Antiguo 26-06-2005
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 28
Lepe Va por buen camino
Cita:
Empezado por Chocoslovaco
en el area de Implemetation de mi Form, coloque: Uses <Nombre del unit donde esta mi ADO Connection>, incluso ya coloque en mi form un ADODataSet, pero hasta aqui logre llegar pues intente colocar en la propiedad DataSource, el nombre del ADOConnection, pero no se despliega nada, incluso coloque un DBGrid (solo para intentar visualizar algo) pero tampoco logro relacionarlo,
Deberás poner el uses en la zona de interface, ya que el grid se declara en la zona superior al implementation, y por ello, todavía no encuentra la definición de AdoConnection.

Al colocarlo en la zona de interface, verás que en el inspector de objetos, en la propiedad Datasource del grid, te deja elegir cualquiera que tengas en el modulo de datos.

Un saludo
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #7  
Antiguo 06-07-2005
Chocoslovaco Chocoslovaco is offline
Miembro
 
Registrado: jun 2005
Ubicación: Puebla, México
Posts: 66
Poder: 19
Chocoslovaco Va por buen camino
Hola de nuevo a todos y de antemano agradezco todos sus comentarios
Y efectivamente ya he logrado enlazar corectamente mi base de datos incluso hasta prevenir un error en la conexion, ahora he estado intentando realizar algunas consultas (eliminacion o actualizacion de registros) con un ADODataSet, usando la propiedad CommandText y Open, pero ocurre un errror.
lo que necesito hacer es algo mas o menos asi: (no necesito visualizacion en pantalla)

Objeto_que-Desconozco.Propiedad:='DELETE * FROM [Mi_Tabla1] WHERE ....';
Objeto_que-Desconozco.Propiedad:='SELECT [Campo1], [Campo2], .. FROM [Mi_TablaC] WHERE ...';
Objeto_que-Desconozco.Propiedad.[Abrir SELECCION];
Recorrer [Mi_TablaC];
Actualizar [Campo3]:=[Campo1]+[Campo2];

en algunos links del foro encontre que este componente (ADODataSet) podia almacenar u operarar las propiedades de un ADOQuery o ADOTable, pero no encuentro como
Si alguien puede decirme que componentes debo utilizar y como utilizarlo, sera de mucha ayuda...Saludos a To2
P.D. Delphi 7 - Access 97

Última edición por Chocoslovaco fecha: 06-07-2005 a las 20:25:19.
Responder Con Cita
  #8  
Antiguo 07-07-2005
Chocoslovaco Chocoslovaco is offline
Miembro
 
Registrado: jun 2005
Ubicación: Puebla, México
Posts: 66
Poder: 19
Chocoslovaco Va por buen camino
Avanzando un poco

Buenas Tardes a to2
Pues considero que ya avance un poco pues ya modifique (actualize) alguna de mis tablas con un ADOQuery haciendo algo como esto:
Código:
with QActualiza do
begin
SQL.Clear;
SQL.Text:='DELETE * FROM [Abonos no Aplicados]';
ExecSQL;
SQL.Clear;
SQL.Text:='DELETE * FROM [Abonos Pendientes]';
ExecSQL;
SQL.Clear;
end;
Ahora...quiero utilizar otro ADOQuery para tomar un valor y de un campo y guardarlo en una variable ..pero me dale un error de parametro no encontrado... no se si lo que esta en micodigo es correcto, he consultado la ayuda de Delphi y tomado algun ejemplo pero no funciona. SI Alguien puedise orientarme para corregir mi error u orientarme de como hacerlo?? Gracias.
Código:
var IdCliente:integer;
....
Query1.SQL.Text:='SELECT Id AS Registro FROM Clientes WHERE NombreCompañía='+ Cliente;
Query1.Parameters.ParamByName('NombreCompañía').Value:=Cliente;
QActualiza.Open;
IdCliente:=QActualiza.FieldValues['Registro'];
Cliente: es un parametro (string) de un procedure, NombreCompañía es del mismo tipo.
Delphi 7, Access 97

Última edición por Chocoslovaco fecha: 07-07-2005 a las 20:41:03.
Responder Con Cita
  #9  
Antiguo 08-07-2005
Chocoslovaco Chocoslovaco is offline
Miembro
 
Registrado: jun 2005
Ubicación: Puebla, México
Posts: 66
Poder: 19
Chocoslovaco Va por buen camino
Gracias

Aqui de nuevo... saludandoles..Solo para agradecerles a todos los que se tomaron las molestia de leer y ayudarme con sus comentarios..MIL GRACIAS.
Y tambien para comunicarles que ya he avanzado pues digo yo que mucho pues ya logre resolver los problemas que comentaba antes. Muchos de los hilos que estan en el foro me fueron de mucha ayuda. Estoy en pleno desarrollo de mi programita de actualizacion, ahi les comentare mas adelante que tal me va y/o si tengo algun otro tropiezo, esteremos de vuelta por aqui. Nuevamente Gracias a Todos. Saludos.

Oswaldo Javier Ramirez.
Responder Con Cita
  #10  
Antiguo 08-07-2005
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 28
Lepe Va por buen camino
Por favor, al postear el código, en lugar de usar la palabra "code" usa la palabra "delphi"

Código Delphi [-]
var IdCliente:integer;
....
Query1.SQL.Text:='SELECT Id AS Registro FROM Clientes WHERE NombreCompañía= rCliente';
Query1.Parameters.ParamByName('prCliente').Value:=Cliente;
QActualiza.Open;
IdCliente:=QActualiza.FieldValues['Registro'];
Ves la diferencia?

como ves lo he modificado, los parametros, dentro del sql tienes que anteponerle los dos puntos ( para que los tome como parámetros. Yo siempre le pongo el prefijo "pr" (parametro), y así no me confundo con los nombres de los campos en sql complejas

Un saludo
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 14:20:12.


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
Copyright 1996-2007 Club Delphi