Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   Novato - Aplicaciones con Base de Datos (https://www.clubdelphi.com/foros/showthread.php?t=22722)

Chocoslovaco 24-06-2005 18:27:24

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

marcoszorrilla 24-06-2005 21:45:00

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.

Chocoslovaco 25-06-2005 18:40:16

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

marcoszorrilla 25-06-2005 19:07:07

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.

Chocoslovaco 25-06-2005 19:44:43

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.

Lepe 26-06-2005 12:33:09

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

Chocoslovaco 06-07-2005 20:15:24

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:D
Si alguien puede decirme que componentes debo utilizar y como utilizarlo, sera de mucha ayuda...Saludos a To2;)
P.D. Delphi 7 - Access 97

Chocoslovaco 07-07-2005 20:15:32

Avanzando un poco
 
Buenas Tardes a to2:D
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

Chocoslovaco 08-07-2005 00:17:55

Gracias
 
:D :D :D 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.;)

Lepe 08-07-2005 11:25:12

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= :prCliente';
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


La franja horaria es GMT +2. Ahora son las 00:35:35.

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