Ver la Versión Completa : Como saber si esta instalado el BDE en un ordenador
Jose Manuel
12-05-2003, 16:57:04
Hola,
Como puede una aplicación realizada en Delphi4 o 6, preguntar si en el ordenador en el que está instalada está el motor de acceso a base de datos, para que en caso de que no este instalado muestre un mensaje de aviso y no intente abrir las bases de datos, que produciria un error.
Saludos
Jose Manuel
FRANKER
12-05-2003, 17:22:55
Hechale un Vistazo al Truco 475 de Trucomania:
http://www.q3.nu/trucomania/truco.cgi?475&esp
Saludos y Suerte!!
Jose Manuel
12-05-2003, 19:13:10
Gracias FRANKER, he visitado TRUCOMANIA y he visto que la forma de conocer si un usuario tiene instalado o no el BDE es
IsBDEExist := (dbiInit(nil) = 0), pero como?
He incluido esta instrucción en el Datamodulo de mi aplicación,
procedure TfDataModulo.fDataModuloCreate(Sender: TObject);
begin
IsBDEExist := (dbiInit(nil) = 0)
.....
.....
End;
y me da el siguiente error al compilarlo, tal vez me falte algún USES, no sé:
[Error] Database.pas(531): Undeclared identifier: 'IsBDEExist'
Los USES que tengo son:
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
DBTables, Db, Bde;
roman
12-05-2003, 19:37:40
Posteado originalmente por Jose Manuel
He incluido esta instrucción en el Datamodulo de mi aplicación,
procedure TfDataModulo.fDataModuloCreate(Sender: TObject);
begin
IsBDEExist := (dbiInit(nil) = 0)
.....
.....
End;
y me da el siguiente error al compilarlo, tal vez me falte algún USES, no sé:
[Error] Database.pas(531): Undeclared identifier: 'IsBDEExist'
No te falta ningún uses sino leer con un poco más de cuidado antes de copiar y pegar. El truco esencialmente dice (mejor dicho la línea de código por que el truco en sí no lo he visto) que si la funcion dbiInit devuelve 0 es porque sí está instalado y si devuelve distinto de cero es porque no está instalado.
Entonces, la expresión (dbiInit(nil) = 0), que es una expresión booleana, la puedes asignar a una variable de tu elección, declarada por tí.
// Saludos
__cadetill
12-05-2003, 20:52:37
Ampliando un poco la respuesta de roman (que tiene toda la razon en lo que dice), puedes hacer una cosa asi
procedure TfDataModulo.fDataModuloCreate(Sender: TObject);
function IsBDEExist : boolean;
begin
Result := (dbiInit(nil) = 0);
end;
begin
if IsBDEExist then
// Existe
else
// No existe
end;
Espero que ahora te quede algo mas claro ;)
roman
12-05-2003, 20:59:52
Y ya si somos muy exigentes recomendaría pasar la función que indica Cadetill al dpr para que la verificación se ejecute antes que cualquier otra cosa pues es de suponerse que no tiene caso que el sistema inicie y se creen formularos y demás si no está instalado el BDE.
// Saludos
pd: Comentario al autor del truco en trucomanía. El nombre correcto sería "DoesBDEExist" :D
Jose Manuel
13-05-2003, 10:07:49
Gracias, ya me funciona correctamente.
Un saludo a todos.
vBulletin v3.6.8, Derechos ©2000-2024, Jelsoft Enterprises Ltd.