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)
-   -   Delphi + Access + con codigo (https://www.clubdelphi.com/foros/showthread.php?t=30782)

albertoP 19-04-2006 08:51:13

Delphi + Access + con codigo
 
Hola:
Como puedo conectarme a Access desde delphi...

Por favor si alguien me envia un articulo o me envia un ejemplo le estare muy agradecido...

marcoszorrilla 19-04-2006 09:12:33

Si utilizas los componentes ADO, que vienen con Delphi, en ellos tienes un asistente para realizar la conexión que es muy fácil de utilizar y además muy intuitivo.

Un Saludo.

Neftali [Germán.Estévez] 19-04-2006 13:42:19

Aquí tienes algo de código de ejemplo.

Chogo 19-04-2006 21:16:34

Te dare unos principios basicos con los controles Ado segun Delphi 7
esto los encontraras en la ficha ADO del Delphi.

Te romiendo que uses un Datamodule( ve al menu file->new->datamodule) y ahi colocas los controles o si en un formulario si solo quieres experimentar.

AdoConnection: es para establecer conexion a una base de datos
debe usar la propiedad conecction string. ahi encontrara dialogos para buscar tu base de datos.
Tambien debes considerar la ficha provider, ahi selecioneas el microsoft jet XX ole DB. (las XX son la version del proveedor) y preciona el boton test conectio para saber si se conecto a la base de datos.

la propidad login prompt= false esto es para que no te este pidiendo usuarioa y contraseña cada vez que quieras hacer una conexion.

La propiedad Connect esta para esta trabajando con la conexion en tiempo de diseño.

AdoTable:
este es un control que se conecta a las tablas de la base de datos, aqui manejaras la tablas como objectos.

La propiedad conection debe estar el nombre del control AdoConnection.
la propiedad TableName es el nombre la tabla en la base de datos.
La propiedad Active es la conectarse en tiempo de diseño

Si das doble click sobre el contro tendras una ventana donde podras agregar los campos de tu tabla en el control ADOTABLE. si tienes activo el adotable solo dale click sencundario y Add all field en el menu emergente.

los metodos que mas usaras seran los siguientes
Open abrir el abotable pero solo se usa en codigo es como active
Close para cerrar el control
Locate es para hacer busquedas
Los metodos Firts,prior,next y last para moverse entre registros
Los metodos Append, insert,edit,delete,cancel para matenimiento de la tabla
la propiedad state para saber el estado de la tabla si esta editando, insertando,lo que sea.

ADOQuery: es el mismo manejo que adotable ,pero este obtiene un propiedad SQL donde almacena tu intrucion SQL, es de esta instrucion que obtendras los registros

albertoP 20-04-2006 01:59:08

Muchas Gracias
 
Muchas a gracias por todos los que se interesaron... y fundamentalmente a chogo.....

Ahora hare las pruebas y despues les dire...

Saludos para todos

albertoP 20-04-2006 19:10:01

Sigo trabado
 
Hola
Sabes ya se que componentes usar pero no se como obtener los resultados de la consulta a travez del recordSet...

Si me puedes colgar una example te lo agradeceria mucho

courtois 21-04-2006 04:30:34

si necesitas acceder al recordset este está encapsulado dentro del TAdoTable y TAdoQuery con el nombre de Recordset, aunque no veo la necesidad de accederlo

Chogo 24-04-2006 22:19:11

si ya existe lo que te dije anteriormente, lo que debes hacer ahora es colocar un control Datasource que esta en la paleta de Data Access este control tiene una propiedad que se llama DataSet esta tiene que tener el nombre del control ADoTable o AdoQuery.

Luego colocas calquier control de la paleta Data Controls, todos estos controles son usados por el usuario final en tu formulario.

Puedes usar el DBGrid para prueba, todos estos controles tiene una propiedad en comun y esta es DataSource, esta contiene el nombre del control DataSource.

Algunos controles como el DBEdit o DBCheckbox tienen una propiedad mas, esta es DataField esta contiene el nombre del campo.

Como puedes observar el datasource esta entre medio de los controles Ado y los controles Data controls.

Seria bueno que :mad: que los controle ado se conectaran de una vez con los data controls pero tendremos que usar el datasource aunque paresca poco practico:rolleyes:
Espero que todo este clara, ;)

manuelgomez 27-04-2006 01:46:29

Como acceder a los campos del registro
 
Hola a todos:

He seguido todos pasas y muy bien. Ahora mi problemas es que quiero que cuando se pinche un registro del DBGrid se muestren los datos en campos.

No quiero que se pongan cuando estas recorriendo el dbgrid

Un Saludo

marcoszorrilla 27-04-2006 06:59:01

Supongo que quieres decir que quieres mostrar los datos en unos controles de tipo Edit.

Pues no tienes más que cargar los datos cuando el usuario pinche en la rejilla, puedes utilizar para ello el evento OnCellClick.

Otra solución es tener controles "Data aware", es decir DbEdits conectados a la fuente de datos pero no visibles y mostrarlos cuando pulsen en la rejilla, o si los tienes visibles siempre que se conecten cuanto pulses en la misma.

Un Saludo.

manuelgomez 27-04-2006 09:15:40

Mostrar los datos en unos controles de tipo Edi
 
Efectivamente Marcos, eso es lo que quiero.

En el control DBGrid en el evento OnCellClick, quiero escribir el código que me permita eso, mostrar los datos del registro seleccionado.

Actualmente y despues de hacer pruebas pongo el siguiente código, pero me nuestra el nombre del campo.

Código:

IDC_NombreCliente := ADOQuery.FielDesfList[0].Name;
Que es lo que pasa, que hay que encontrar la propiedad correcta, por ahora esta es mi guerra.

manuelgomez 27-04-2006 09:29:16

Para Marcos
 
Después de enviar el anterior mensaje me he dado cuenta de que eres moderador.

Me gustaría preguntarte una cosa:

Yo vengo de VB, hace unos dias intente abrir una hilo, pero a fecha de hoy no lo he visto. No se si es porque lo hice mal, ó porque este foro es para Delphi.

En Hilo en cuestión se trataba de "Uno que viene de vb y quiere lo mismo con Delphi". Los dos lenguajes tiene cosas parecidas aunque creo que Delphi en cuestion de rapidez, etc le gana a vb. También queria que la gente diese su opinión sobre la evolución de inclinarse por un entorno ú otro por ejemplo, .Net, C#, etc. a la hora de aprender un nuevo lenguaje.

Un Saludo.

Neftali [Germán.Estévez] 27-04-2006 10:31:07

Cita:

Empezado por manuelgomez
Yo vengo de VB, hace unos dias intente abrir una hilo, pero a fecha de hoy no lo he visto. No se si es porque lo hice mal, ó porque este foro es para Delphi.

En Hilo en cuestión se trataba...

Seguramente no hiciste nada mal, ni tiene nada que ver con que sea un foro de Delphi. Seguramente es debido a que hace unos días "se cascó" el servidor y al restaurar copias de seguridad se perdió un intervalo de mensajes (y entre esos estaría el tuyo).

Si no lo encuentras, vuelve a escribirlo.

Un saludo.

marcoszorrilla 27-04-2006 17:31:45

Código Delphi [-]
 IDC_NombreCliente := ADOQuery.FielDesfList[0].AsString;
IDC_NombreCliente := ADOQuery.FielDesfList[0].AsInteger;
IDC_NombreCliente := ADOQuery.FielDesfList[0].AsBoolean;
//etc...

Como el tema del hilo desaparecido ya te lo ha explicado Neftalí, no hago mención al mismo.

Un Saludo.

manuelgomez 07-05-2006 19:01:51

Algo debo hacer mal
 
Hola Marcos:


Con tu instrucción: Código Delphi [-] IDC_NombreDeEmpresa.Text := ADOQuery1.FieldDefList[0].AsStrings;



para mostrar los campos en controles de tipo edit al compilar tengo el siguiente error: Código Delphi [-][Error] Unit1A1.pas(242): Undeclared identifier: 'AsStrings'

Como puedo saber la instrucción correcta.

Un Saludo.

marcoszorrilla 07-05-2006 22:51:20

Código Delphi [-]
IDC_NombreDeEmpresa.Text := ADOQuery1.FieldDefList[0].AsString;

Como ves sobra la s final.

Un Saludo.

manuelgomez 09-05-2006 00:56:20

Hay que Cambiar FieldDefList
 
Hola Marcos:

Como puedes llevar mas de cinco mil mensajes.

El error me seguia Saliendo. A los errores que sales al compilar hay que hacerle caso. Me dice que la variable no esta definida, hay que hacerle caso.

La instrucción por la cual me muestra el campo que un edit es la siguiente:

Código Delphi [-]
IDC_NombreDeEmpresa.txt := ADOQuery1.Fields[Número_Campo].AsTring;

Moraleja hay que cambiar el FielDesfList por Fields.

Un Saludo

manuelgomez 09-05-2006 16:18:58

Ahora viene el grabar el registro seleccionado
 
Hola Muy buenas a todos.

He estado mirandome todos los hilos y no he encontrado nada parecido al problema que tengo.

Una vez que he descubierto como volcar los campos del registro a los Edit, ahora estoy por grabar el registro que has seleccionado en el DBGrid.

Un Saludo

marcoszorrilla 09-05-2006 20:55:10

Si utilizas DbEdit en vez de Edit, los cambios se grabarán directamente en la tabla, sino tendrás que hacer algo así:

Código Delphi [-]
ADOQuery1.Fields[Número_Campo].AsTring:=Edit1.Text;

Un Saludo.

manuelgomez 10-05-2006 00:26:47

Primero edicion ó insertar
 
Hola de nuevo.

Marcos, pero primero tendrás que decirle que estas editar, a continuación vuelcas el edit, como dices tu al campo de registro y déspues hacer el update.

Por lo menos en vb con ado, yo lo hago así.

Código vb:

Código:

RecorSet_Clientes.Edit
RecorSet_Clientes(NombreCliente) = NombreCliente.txt
RecorSet_Clientes.Update

Con esta instrucción grabo el registro.

Un Saludo.


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

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