PDA

Ver la Versión Completa : Como Crear una base de datos access?


Gagiel
26-02-2007, 08:44:31
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í (http://www.clubdelphi.com/foros/showthread.php?t=40547) del mismo tema.
Otra opción la puedes encontrar en la sección de trucos (http://neftali.clubdelphi.com/delphi_tips.html) 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
(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.

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:

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 :)

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

[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 (http://www.terawiki.clubdelphi.com/archivos/%5BTutorial_Flash%5DComo_Crear_MDB_%20con_%20Delphi6.zip)

Neftali [Germán.Estévez]
27-02-2007, 12:07:14
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!