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)
-   -   Como Crear una base de datos access? (https://www.clubdelphi.com/foros/showthread.php?t=40753)

Gagiel 26-02-2007 08:44:31

Como Crear una base de datos access?
 
Hola Foreros!

Tengo un problemilla...
Uso una Base de Datos creada con access, y lo que quiero es crearla en caso de que no exista, quiero decir, crear el fichero .mdb y crear los campos, rellenarlos i borrarlos ya lo tengo dominado, pero me interesaria esto poder crear el fichero en caso de que no existiese.

Muchisimas Gracias


Saludos!

Neftali [Germán.Estévez] 26-02-2007 11:20:46

No hace muchos días hablamos aquí del mismo tema.
Otra opción la puedes encontrar en la sección de trucos de mi página.

Gagiel 26-02-2007 11:25:33

Hola.

Buscando por el google he encontrado tu pagina xD

Però es k no soy capaz de que me reconozca el _Catalog me dice que el identificador es inexistente....

Neftali [Germán.Estévez] 26-02-2007 12:27:53

¿Has seguido los pasos que se explican al principio?
Al USES debes añadir la unit que has creado.

JF Sebastian 26-02-2007 12:45:17

Si, pero en que unit se halla _catalog??

Neftali [Germán.Estévez] 26-02-2007 13:11:40

Cita:

(1) Menu Project/Import Type Librery.
(2) Buscar la librería: "Microsoft ADO Ext. 2.X for DDL and Security".
(3) Pulsa "Create Unit".


En esa Unit!! No me acuerdo del nombre ahora, pero si la generas lo verás...


EDITO/AÑADO:
Creo casi seguro que deberás añadir también al uses las units ActiveX o ComObj (o ambas). Compila y si te las pide las añades.

Gagiel 27-02-2007 08:24:12

Hola Neftali.

Sigo peleandome con el _Catalog y el resto por falta de la libreria.
Como has dicho en tu último post le he metido la siguiente libreria:
Active X DLL to perform...... (Es esa? :p ) Sigo el mismo metodo que para añadir la libreria ADO.
Y la ComObj soy incapaz de encontrarla, le he puesto todas las COM k e encontrado y sigo en el mismo sitio.

Por cierto dices que al compilar pide las librerias... donde lo puedo ver esto?

Muchas gracias por las respuestas, pero sobretodo por la paciencia con los novatillos....

*Solo añador que soy yo kient te mando el correo ayer ;)

Neftali [Germán.Estévez] 27-02-2007 11:35:11

Hola Gabriel.
Vamos por partes. Intenta seguir los pasos (los tres pasos comentados antes). En orden y sin hacer nada más.
No hagas experimentos, ni añadas cosas raras porque así lo que pasará es que se complicará más la cosa y al final no lo solucionaremos.

Cita:

Empezado por Gagiel
Sigo peleandome con el _Catalog y el resto por falta de la libreria.
Como has dicho en tu último post le he metido la siguiente libreria:
Active X DLL to perform..

Yo no he nombrado esto(Active X DLL to perform...) por ningun sitio. :confused:

Cita:

Empezado por Gagiel
Y la ComObj soy incapaz de encontrarla, le he puesto todas las COM k e encontrado y sigo en el mismo sitio.

No hombre. Así no van las cosas. Si hay que poner la ComObj, por mucho que pongas las que se llaman parecido no vas a solucionar nada.

Gagiel 27-02-2007 11:50:20

Hola

Gracias por tu paciencia, he visto mi super-mega error xD vamos a dejarlo aparte... Confundí importar librerias con poner en usues (estoy ufuscadooo)

He agregado el ActiveX i el ComObj en uses pero sigo con lo mismo el _Catalog no me lo reconoce.
Pongo el codigo que estoy probando (es un proyecto nuevo para no cargarme el bueno, quando funcione ya lo pasaré al bueno) decir que es un copia pega de tus trucos :)
Código:

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ActiveX, ComObj; //2 uses añadidos

type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
const
  DATABASENAME = 'c:\temp\BaseDatosNueva.mdb';
var
  Catalog: _Catalog;
  ConnectionString:String;
begin
  // Create a Catalog Object
  Catalog := CreateCOMObject(StringToGUID('ADOX.Catalog')) as _Catalog;
  // Set the Connection String
  ConnectionString := 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=' +
            DATABASENAME;
  try
    // Create new Access database
    Catalog.Create(ConnectionString);
  except
    on E:EOLEException do begin
      // Levantamos la excepción
      MessageDlg('Error al crear la Base de Datos; Mensaje:' +
    E.Message, mtError, [mbOK], 0);
    end;
  end;
end;

end.

i Aquí la lista de errores :s
Código:

[Error] Unit1.pas(30): Undeclared identifier: '_Catalog'
[Error] Unit1.pas(34): Operator not applicable to this operand type
[Error] Unit1.pas(40): Missing operator or semicolon
[Error] Unit1.pas(40): Incompatible types: 'TComponent' and 'String'
[Fatal Error] Project1.dpr(6): Could not compile used unit 'Unit1.pas'


Neftali [Germán.Estévez] 27-02-2007 11:57:51

Creo que vale más una imagen que mil palabras.
Tengo Wink abierto para otras cosas, así que aprovecho y hago la prueba...

EDITO: Subido al FTP;
El archivo se llama: [Tutorial_Flash]Como_Crear_MDB_con_ Delphi6.zip

Neftali [Germán.Estévez] 27-02-2007 12:07:14

1 Archivos Adjunto(s)
Ya ha acabado de subir.
Espero que te sea de ayuda.

Subo tamnbién el proyecto de delphi.

Gagiel 27-02-2007 12:17:43

MUCHISIMAS GRACIAS

Explicación curradisima! no tengo palabras :)

ME faltaba poner el ADOX_TLB en uses y ya está.

Lo siento por traerte tanta faena, soy novatillo pero en el trabajo me han pedido esto y estoy aprendiendo a marchas forzadas.

No se puede votar no? XD xk te voto 15 sobre 10 :D


Gracias de nuevo!

Saludos!


La franja horaria es GMT +2. Ahora son las 05:09:11.

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