PDA

Ver la Versión Completa : Crear bases de datos con objeto


coso
25-07-2008, 13:53:41
Hola a todos, ya se que este tema ha estado muy tratado. Como puedo crear una base de datos de access sin usar ni Access ni BDE? es mas que nada para que la maquina destino no tenga que tener instalado estos. Dicho de otra manera, que objeto OLE deberia usar que cree bases de datos y que este instalado por defecto en todas las maquinas windows? saludos y gracias de antemano.

Caro
25-07-2008, 14:38:52
Dicho de otra manera, que objeto OLE deberia usar que cree bases de datos y que este instalado por defecto en todas las maquinas windows? saludos y gracias de antemano.

Según mi libro lo llama MyBase, en el cual no necesitas ningún manejador de BD (DBMS) o RDBMS, ya que puedes almacenar los datos en local ya sea en un archivo binario o XML. Y el unico componente que utiliza MyBase es el ClientDataSet.

En esta pagina hay un tutorial sobre MyBase http://www.laboiteaprog.com/article-25-1-delphi_mybase solo que esta en frances.

Yo lo utilizado poco, solo para crearme una tabla en memoria en formato XML.

Saluditos

coso
25-07-2008, 15:03:48
bueno, yo usaba este codigo, modificado del club


function Crear_base_de_dades(n : string) : boolean;
var
db : OleVariant;
begin
Crear_base_de_dades := true;
try
db := CreateOleObject('Access.Application');
db := db.NewCurrentDatabase(n);
except
Crear_base_de_dades := false;
end;
db := unassigned;
end;


el original (por chackall) era con createoleobject('dao.6'), creo. Lo que me interesa es usar mas o menos el mismo codigo y los componentes nativos, para no tener que estar con mantenimiento :mad: cada dos por tres. MDAC incluye DAO? pues segun wikipedia (http://es.wikipedia.org/wiki/MDAC) se consideran obsoletos...Vamos, que temo que cambien todo el tinglado y tenga que volver a escribir

PD : gracias igualmente, ya se que hare :D lo intentare hacer con todas las conocidas y disponibles.

coso
25-07-2008, 15:06:32
function CreateAccessDatabase(FileName:string): string;
var
cat: OLEVariant;
begin
Result := '';
try
cat := CreateOleObject('ADOX.Catalog');
cat.Create('Provider=Microsoft.Jet.OLEDB.4.0;Data Source=' + FileName + ';');
cat := NULL;
except
on e: Exception do Result := e.message;
end;
end;


al final creo que usare esta...son los mismos componentes del ADO del delphi? alguien lo sabe?

coso
25-07-2008, 15:14:17
Caro, mire tu link pero no entiendo frances. Buscando MyBase (http://msdn.microsoft.com/es-es/library/dzfhkk01%28VS.80%29.aspx) solo encontre esto mas o menos relacionado, aunque hay varios componentes gratuitos con ese nombre.

PD : y esto (http://www.todoexpertos.com/categorias/tecnologia-e-internet/bases-de-datos/respuestas/1062881/access-a-mybase). No me sirve, gracias de todos modos.

Caro
25-07-2008, 15:42:58
Sobre el objeto OLE que tengas que usar, ni idea cual pueda ser.

Ahora sobre myBase no necesitas tener Access instalado ni ninguna otra, ya que tu creas la estructura de tu BD y lo guardas en el XML, solo trabajas con el archivo XML o binario. Talvez no te entendi bien, tu quieres abrir una BD Access sin tener Access instalado, osea no crear una Base de Datos nueva??

Sobre el tutorial aqui lo tienes traducido :), no esta del todo bien, pero supongo que te servira de algo http://espanol.babelfish.yahoo.com/translate_url?doit=done&tt=url&intl=1&fr=bf-home&trurl=http%3A%2F%2Fwww.laboiteaprog.com%2Farticle-25-1-delphi_mybase&lp=fr_es&btnTrUrl=Traducir

Saluditos

coso
25-07-2008, 16:28:43
Si Caro. Que se pudiera crear y abrir y trabajar una base de datos de access aun sin estar access instalado, pues son las que usa mi aplicacion (seria para crear copias de seguridad o diferentes "archivos"). Igualmente, creo que lo que puse al final (ADOX) son los objetos active X de los componentes de ADO, por lo que si no funcionase por lo que sea el crear la base de datos, tampoco funcionaria el resto de programas (...y me llamarian ... :( ...) Saludos y gracias de nuevo :D

PD : y lo guardas en el XML, solo trabajas con el archivo XML o binario pues, en texto simple o XML, creo que sera en la proxima, que es en lo mas facil de trabajar teniendo SQL

FGarcia
25-07-2008, 16:43:28
Hola! Si vas a trabajar con Access y Delphi nunca esta de mas el curso de ADO (http://delphi.about.com/od/database/a/databasecourse.htm) y Delphi de la pagina de About (http://delphi.about.com/).

Si quieres ir directo al grano aqui (http://delphi.about.com/library/weekly/aa072401a.htm).

coso
25-07-2008, 19:43:12
Gracias FGarcia