FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
¿Como hago mi conexion por programacion?
Estoy aprendiendo con un ejemplo ya hecho y me gustaria que me dijerais como tengo que sustituir unos componente que tiene hechos por diseño y cambiarlos a programacion directa.
Mediante un boton en el form principal se llama a un form3 en en cual hay un un TDBGrid, un DataSource y 2 Tables. Por Diseño Que codigo tengo que poner en procedure TForm3.FormShow(Sender: TObject); para que el DataSource y los 2 Tables esten presentes sin poner los componentes en el formulario. y tambien que codigo tengo que hacer para poner las propiedades de los tables por codigo. ----------------------------- En las propiedades del table1 tengo en Active True DatabaseName c:\ejemplo Name Table1 TableName auxiliar.db ----------------- En las propiedades del table2 tengo en Active True DatabaseName c:\ejemplo Name Table2 TableName ventas.db -------------------------- El DBGrid DataSource DataSource1 Name DBGrid1 Y lo que quiero es quitar los componentes visuales del DataSource y los 2 tables y ponerlos por programacion directa. Pero no se como se hace. Gracias |
#2
|
||||
|
||||
Pues necesitas 3 variables, una de cada tipo
Yo he usado Form1, así que cambia las referencias a Form3 Un detalle: Si ya has puesto los Datsources y ttables en tu ventana, delphi ha añadido los uses automaticamente, por tanto, este ejemplo se compila sin problemas. Si partes de un formulario totalmente vacio, cuando pongas : tabla1 : TTable; el compilador se quejará porque no sabe que es el TTable, entonces, haz clic sobre la palabra "TTable" pulsa F1 y la ayuda de delphi te dirá que se encuentra en: Cita:
Edito: este mensaje ha sido comprobado en delphi. Un saludo.
__________________
Si usted entendió mi comentario, contácteme y gustosamente, se lo volveré a explicar hasta que no lo entienda, Gracias. |
#3
|
|||
|
|||
Muchas gracias
He creado este ejemplo con lo que tu me has dicho y me funciona.
Asi que me gustaria si algo esta mal me lo corrijas. unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, DBGrids, DB, DBTables; type TForm1 = class(TForm) procedure FormShow(Sender: TObject); private { Private declarations } DataSource1:TDataSource; Table1:TTable; DBGrid1:TDBGrid; public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.FormShow(Sender: TObject); begin // Creo el DataSource, el Table y el DBGrid y lo asigno al Form1 Datasource1 := Tdatasource.Create(Form1); Table1 := TTable.Create(Form1); DBGrid1 := TDBGrid.Create(Form1); //En las propiedades del table1 tengo en with table1 do begin DatabaseName := 'e:\ejemplo'; Name := 'Table1'; TableName :='Clientes.dbf'; Active := True; Datasource1.Dataset := Table1; // logicamente antes de poner en activo la tabla, todas // las propiedades deben estar establecidas. end; //En las propiedades del Grid1 tengo en with DBGrid1 do begin DBGrid1.SetBounds(0,40,Form1.Width, Form1.Height-40); DBGrid1.Parent:= Form1; DBGrid1.Visible:= True; DBgrid1.Datasource := DataSource1; end; // Abro el Table1 table1.Open; end; end. Me falta ordenar la tabla. Supongo que lo sacare. Habras visto que soy novato total Pero me gusta esta forma de aprender. Me puedes decir como hago para que el hilo salga bonito como el tuyo? |
#4
|
||||
|
||||
Saludos
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! Última edición por vtdeleon fecha: 06-08-2005 a las 21:04:35. |
#5
|
||||
|
||||
Antuan, Tengo que comentar un fallo en el código que he posteado; Como yo no tengo tu tabla llamada Auxiliar, he usado una tabla que tenia a mano llamada 'Clientes.dbf', y se me olvídó modificarlo al pegar el mensaje.
Donde dice : TableName := 'Clientes.dbf' deberás cambiarlo por: TableName := 'Auxiliar.db' Con eso ya debería tirar de lujo, siento las molestias. Por cierto, para el "código salga bonito" usa esto: [ delphi ] aqui vuestro codigo fuente [ /delphi ] (sin espacios dentro de los corchetes) Así consigues que respete el identado y aparezca las palabras reservadas en negrita y colores. Un saludo
__________________
Si usted entendió mi comentario, contácteme y gustosamente, se lo volveré a explicar hasta que no lo entienda, Gracias. |
#6
|
|||
|
|||
Una cosa mas
Me va todo muy bien y gracias por tu atencion para que aprenda.
Solo me queda en este ejemplo y que no soy capaz de poder hacer que tome la base de datos la misma ruta donde tengo la aplicacion. La base de datos esta en la misma carpeta que la aplicacion. De nuevo muchas gracias por tu atencion. |
#7
|
||||
|
||||
Puedes usar:
Es otra forma, pero es exactamente lo mismo que paramstr(0) Aunque yo te sugiero que las tablas las coloque en una SubCarpeta, ya que son muchos archivos los que se crean, ficheros de tablas, indices, validaciones, campos memos (si los utilizas), etc; Crea la carpeta "tablas" dentro del .EXE, y despues añades esto:
Advertencia: Ten cuidado con las rutas extremadamente largas, yo situaría el programa con esta estructura de carpetas: Código:
c: |-----Mi Programa |--------- Archivo .Exe |--------- Tablas |--------- auxiliar.DB |--------- Otratabla.DB Edito: Acabo de probarlo con la ruta: C:\Archivos de programa\Borland\Delphi6\Projects\tablas y funciona, pero recuerdo que en algun momento usando muchos niveles de carpetas, el BDE se quejó. Un saludo
__________________
Si usted entendió mi comentario, contácteme y gustosamente, se lo volveré a explicar hasta que no lo entienda, Gracias. Última edición por Lepe fecha: 07-08-2005 a las 14:40:01. |
#8
|
||||
|
||||
Saludos
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! |
#9
|
|||
|
|||
Funciona
Con esto funciona perfectamente
DatabaseName := ExtractFilePath(Application.ExeName)+'tablas'; Muchas gracias |
|
|
|