 |
Club Builder Foro de C++Builder en español
|
| Ver tema anterior :: Ver tema siguiente |
| Autor |
Mensaje |
Carlos J. Fernandez Master


Registrado: 27 Oct 2004Mensajes: 574
|
Publicado: Mar 01 Jul, 2008 11:29 am Asunto: Instalacion con SQL |
|
|
Hola a todos,
Os cuento, tengo que hacer un programa comercial, osea que no voy a tener contacto con los clientes, tiene que ser muy facil de instalar y sin cosas raras y mis mayores dudas vienen por que SQL usar.
Hasta ahora he hecho cosas en SQL Server, MySQL y alguno más y me preocupa la forma de instalar por que es un rollo y lo que yo quiero es lo mismo que hacia con Paradox, un instalador que hacia todo, ellos solo daban siguiente siguiente y tenian todo listo y ahora veo que por un lado instalar el SQL por otro el programa, etc...
Como lo haceis? cual es la base de datos mas facil de instalar y si es posible en la misma instalacion que el programa? que no les complique nada la vida ya que el programa va dirigido a gente que no tiene ni idea de informatica.
Contarme un poco a ver que haceis vosotros.
Un abrazo.
Carlos |
|
| Volver arriba |
|
 |
Cri_sys Master


Registrado: 13 Feb 2004Mensajes: 198Ubicación: Maringá, Brazil
|
Publicado: Mar 01 Jul, 2008 12:28 pm Asunto: |
|
|
Lo que tienes q utilizar son componenetes DBExpress por que no precisan de una ODBC, solo de un .dll q puede ir acompanhando a tu .exe, nada de instalaciones.
Puedes encontrar los componentes ADO pero estos precisan de MDBD instalado previamente y registrar el Banco en ODBC, que es lo que no quieres!
Salu2 _________________ Read what I mean, not what I write! |
|
| Volver arriba |
|
 |
Tor Master


Registrado: 22 Mar 2005Mensajes: 269Ubicación: obera, misiones, argentina
|
Publicado: Mar 01 Jul, 2008 2:21 pm Asunto: |
|
|
Hola Carlos, lo que te indica Cri_sys eso de usar un componente que te permita la conexión directa a la BD, es lo mas adecuado, puede ser un componente o una dll, etc.
También puedes utilizar Zeos, hace un tiempo que yo lo estoy utilizando y me permite conectar desde Ms Access, MySQL 4.x – 5.x, PostGress, SQLite 2 – 3 y InterBase, Firebird en algunas ocasiones el cambio de una BD a la otra fue total mente transparente solo cambiando una dll.
Lo interesante que encontré en Zeos y no pude realizarlo en DBExpress lo cual no quiere decir que no se pueda, es que Zeos te permite manejar bases de datos embedded, tanto para MySQL 4.x-5.x, Firebird 1-2 y esta de más decir SQLite.
Y para tratar de responder tu pregunta ¿cual BD?, creo que debería ser una embedded, puede usar MySQL, en Zeos encontraras un ejemplo para la versión 4.x. o si prefieres Firebird o SQLite.
saludos tor _________________ Un experto es aquel que ya ha cometido todos los errores posibles en una materia muy concreta.
(Niels Bohr) |
|
| Volver arriba |
|
 |
Carlos J. Fernandez Master


Registrado: 27 Oct 2004Mensajes: 574
|
Publicado: Mar 01 Jul, 2008 3:08 pm Asunto: |
|
|
Gracias por las respuestas,
Una cosa más, es una aplicacion cliente/servidor, siendo en el modo que decis de DLL tambien vale?
Un abrazo.
Carlos |
|
| Volver arriba |
|
 |
Tor Master


Registrado: 22 Mar 2005Mensajes: 269Ubicación: obera, misiones, argentina
|
Publicado: Mar 01 Jul, 2008 4:36 pm Asunto: |
|
|
Carlos creo que me exprese mal, o me entendiste mal. No hay un modo dll, la conexión desde tu aplicación a la base de datos, lo puedes hacer por ODBC o de forma directa. Si usas ODBC este debe estar instalado en la PC cliente donde reside tu aplicación.
Si usas un componente es más sencillo ya que generalmente estos componentes realizan una conexión directa a la BD, y no se requiere ninguna instalación de conectores como por ej ODBC. Pero sucede que para algunas bases de datos puede que no existan componentes o los que existen son de “pago”, entonces debes recurrir a algunas dll, para realizar la conexión con tu BD como sucedía hace algún tiempo con MySQL.
Si a la BD, va a conectarse solo tu aplicación (no es una BD concurrente), puedes optar por una BD embedded (incrustada) de esta manera lograras algo como lo que tu mencionas.
| Cita: | Carlos J. Fernandez escribió:
lo que yo quiero es lo mismo que hacia con Paradox, un instalador que hacia todo, ellos solo daban siguiente siguiente y tenian todo listo |
Espero haberte aclarado un poco mas, luego comentanos tus resultados.
saludos _________________ Un experto es aquel que ya ha cometido todos los errores posibles en una materia muy concreta.
(Niels Bohr) |
|
| Volver arriba |
|
 |
Carlos J. Fernandez Master


Registrado: 27 Oct 2004Mensajes: 574
|
Publicado: Mar 01 Jul, 2008 4:52 pm Asunto: |
|
|
Perdona que soy un poco cazurro, te cuento paso a paso.
Mi idea es usar MySQL, como tengo mucho codigo hecho me gustaria usar componentes ADO.
Hasta ahora los pasos que veo que tengo que hacer son los siguientes:
1.- Voy al servidor e instalo en Servidor MySQL que me descargo.
2.- En los PC que van a conectar al servidor voy a ODBC y creo un DSN de Sistema
El problema es darles todo este rollo a los clientes, me gustaria que se hiciera todo esto solito sin que el usuario haga todo esto.
Si pudiera ahorrarme el ODBC desde luego seria un avance importante, pero claro me gustaria usar ADO que es donde veo el problema.
Un abrazo.
Carlos |
|
| Volver arriba |
|
 |
Cesar C. Salazar Gonzalez Master


Registrado: 01 Oct 2002Mensajes: 2155Ubicación: San Cristóbal de Las Casas, Chiapas
|
Publicado: Mar 01 Jul, 2008 5:33 pm Asunto: |
|
|
Bien has intentado con Firebird, la ultima version se ejecuta sin pena ni gloria sobre Windows Vista, y la instalación puedes hacerse con un simple copy and paste, de tus programas, por ejemplo te cuento tres tipos de instalación.
la manera Facil.
1.- Descargas Firebird
2.- Creas tu programa sin run time y packages... etc etc
3.- copias la instalacion de Firebird, junto con tu programa en un cd
4.- Instalas Firebird en la maquina cliente,
5.- Creas una carpeta en el escritorio puede ser donde mas te guste y copias tu programa ahi.
6.- Ejecutas tu programa y listo.
La Manera Profesional
1.- Descargas Firebird
2.- Creas tu programa sin run time y packages... etc etc
3.- Usas InstallShield para crear el instalador, conjuntamente con los Mergemodules de Firebird.
4.- Instalas tu programa creado con InstallShield y Ejecutas tu programa y listo.
y la mucho mas Rápida,
1.- Descargas Firebird Embedido.
2.- Creas tu programa sin run time y packages... etc etc
3.- Copias en la pc Cliente, el firebird embebido y tu programa y listo.
por cierto encontre alguien con el mismo problema, donde dado los invconvenientes se ha cambiado a Firebird ->Enlace
Firebird maneja SQL con muchas ventajas que hacen que no sea dificil el cambio de SQL Server a SQL de Firebird.
y por última recomendación, usa los componentes que vienen en la paleta de Interbase, limpios y transparentes para el trabajo con él, que no requieren instalación adicional, (IBDataSet que es el componente estrella)
Saludos.
pd: estas son algunas de las versatilidades que tiene el motor de Bases de datos SQL, en algún otro post, se ha comentado de quien es mejor, pero creo que como se ha dicho, la manera de resolver los problemas tanto para nosotros como desarrolladores es rápida, eficiente y segura, eso hace mi inclinación por firebird, ahora que si la empresa YA contiene un Motor de base de datos que le ha costado $$$ y €€€€ pues es el desarrollador quien se acopla al servidor de datos SQL para generar los programas. _________________

Ultima edición por Cesar C. Salazar Gonzalez el Mar 01 Jul, 2008 8:30 pm, editado 1 vez |
|
| Volver arriba |
|
 |
Carlos J. Fernandez Master


Registrado: 27 Oct 2004Mensajes: 574
|
Publicado: Mar 01 Jul, 2008 5:53 pm Asunto: |
|
|
Una sola pregunta más,
En el caso de la version Servidor? como hago para que sea como un servicio, que siempre este corriendo?
Un abrazo.
Carlos |
|
| Volver arriba |
|
 |
Touchsoftwares Master


Registrado: 16 Dic 2002Mensajes: 869Ubicación: MEXICO Playa del Carmen
|
Publicado: Mar 01 Jul, 2008 8:10 pm Asunto: |
|
|
Te puede servir esto,es unan parte pequeña , le evitas al cliente crear el odbc,asi haces dos instaladores un server y un cliente y con estas funciones cada cliente crea su propio odbc sin que el usuario meta su mano (jajaja)
| Código: |
//--------------------------------------------------
bool CrearAliasMySQL(AnsiString alias, AnsiString database,AnsiString server,AnsiString user,AnsiString pasv,AnsiString puerto)
{
char SysDir[144];
GetWindowsDirectory(SysDir, sizeof(SysDir));
TRegistry *Registry = new TRegistry;
Registry->RootKey = HKEY_CURRENT_USER;
if (TieneMyODBC2x()&&!TieneMyODBC3x())
{
Registry->OpenKey("\\Software\\ODBC\\ODBC.INI\\"+alias,true);
Registry->WriteString("Database",database);
Registry->WriteString("Description","");
Registry->WriteString("Driver",AnsiString(SysDir)+"\\myodbc.dll");
Registry->WriteString("Option","2579");
Registry->WriteString("Password",pasv);
Registry->WriteString("Server",server);
Registry->WriteString("User",user);
Registry->WriteString("Stmt","");
Registry->WriteString("Port",puerto);
Registry->CloseKey();
Registry->OpenKey("\\Software\\ODBC\\ODBC.INI\\ODBC Data Sources", true);
Registry->WriteString(alias,"MySQL");
Registry->CloseKey();
delete Registry;
return true;
}
if (TieneMyODBC3x())
{
Registry->OpenKey("\\Software\\ODBC\\ODBC.INI\\"+alias,true);
Registry->WriteString("Database",database);
Registry->WriteString("Description"," ");
Registry->WriteString("Driver",AnsiString(SysDir)+"\\myodbc3.dll");
Registry->WriteString("PWD",pasv);
Registry->WriteString("Server",server);
Registry->WriteString("User",user);
Registry->CloseKey();
Registry->OpenKey("\\Software\\ODBC\\ODBC.INI\\ODBC Data Sources", true);
Registry->WriteString(alias,"MySQL ODBC 3.51 Driver");
Registry->CloseKey();
delete Registry;
return true;
}
Registry->CloseKey();
delete Registry;
return false;
}
//--------------------------------------------------
bool TieneMyODBC2x()
{
char SysDir[144];
GetSystemDirectory(SysDir, sizeof(SysDir));
return FileExists(AnsiString(SysDir)+"\\myodbc.dll");
}
//--------------------------------------------------
bool TieneMyODBC3x()
{
char SysDir[144];
GetSystemDirectory(SysDir, sizeof(SysDir));
return FileExists(AnsiString(SysDir)+"\\myodbc3.dll");
}
//--------------------------------------------------
bool ExisteAlias(AnsiString alias)
{
char SysDir[144];
GetSystemDirectory(SysDir, sizeof(SysDir));
TRegistry *Registry = new TRegistry;
Registry->RootKey = HKEY_CURRENT_USER;
if (Registry->OpenKey("\\Software\\ODBC\\ODBC.INI\\"+alias,false)==true)
{
Registry->CloseKey();
Registry->OpenKey("\\Software\\ODBC\\ODBC.INI\\ODBC Data Sources", false);
if(Registry->ReadString(alias)!="")
{Registry->CloseKey();delete Registry;return true;}
}
Registry->CloseKey();
delete Registry;
return false;
}
//--------------------------------------------------
bool BorrarAlias(AnsiString alias)
{
TRegistry *Registry = new TRegistry;
Registry->RootKey = HKEY_CURRENT_USER;
if(Registry->DeleteKey("\\Software\\ODBC\\ODBC.INI\\"+alias))
{
Registry->CloseKey();
Registry->OpenKey("\\Software\\ODBC\\ODBC.INI\\ODBC Data Sources", true);
if(Registry->DeleteValue(alias))
{Registry->CloseKey(); delete Registry; return true;}
}
Registry->CloseKey();
delete Registry;
return false;
}
//--------------------------------------------------
|
PD. Porfa no me acuerdo de donde tome este codigo pido disculpas al autor original por no poner su nombre _________________ Ing. Gabriel Góngora Navarrete
TouchSoftwares Inc
http://www.touchsoftwares.com |
|
| Volver arriba |
|
 |
Cesar C. Salazar Gonzalez Master


Registrado: 01 Oct 2002Mensajes: 2155Ubicación: San Cristóbal de Las Casas, Chiapas
|
Publicado: Mar 01 Jul, 2008 8:26 pm Asunto: |
|
|
| Carlos J. Fernandez escribió: | ...
En el caso de la version Servidor? como hago para que sea como un servicio, que siempre este corriendo?
... |
Al momento de instalarlo, si es Windows 2000 hacia arriba puedes determinar que corra como un servicio, si usas el MergeModule, automáticamente lo pone como un Servicio, en Windows 98 hacia abajo, Siempre corre como una aplicacion.
Saludos. _________________
 |
|
| Volver arriba |
|
 |
Carlos J. Fernandez Master


Registrado: 27 Oct 2004Mensajes: 574
|
Publicado: Mar 11 Nov, 2008 4:03 pm Asunto: |
|
|
Maravillosa vuestra respuesta,
Aunque con un poco de retraso ya lo estoy sacando adelante y funciona muy muy bien el codigo que me habeis puesto.
Solo una pregunta.
Yo cuando creaba antes un alias ODBC siempre lo creaba de "DSN de Sistema" en cambio el codigo que habeis puesto lo crea como "DSN de usuario" la verdad es que da igual por que funciona correctamente, la pregunta es simplemente, que diferencia hay? en que casos debe usarse de sistema y en que casos de usuario?
Un abrazo.
Carlos |
|
| Volver arriba |
|
 |
Tor Master


Registrado: 22 Mar 2005Mensajes: 269Ubicación: obera, misiones, argentina
|
Publicado: Mar 11 Nov, 2008 4:32 pm Asunto: |
|
|
Esto es para acces, creo, pero el concepto es el mismo.
http://support.microsoft.com/kb/159557/es
saludos tor _________________ Un experto es aquel que ya ha cometido todos los errores posibles en una materia muy concreta.
(Niels Bohr) |
|
| Volver arriba |
|
 |
Carlos J. Fernandez Master


Registrado: 27 Oct 2004Mensajes: 574
|
Publicado: Mar 11 Nov, 2008 4:46 pm Asunto: |
|
|
Gracias Tor,
Por lo que estaba leyendo parece ser que el de Usuario es para que lo utilice el usuario que ha iniciado la sesion y creado el Alias y parece que el de sistema es para tods los usuarios independientemente de quien inicie sesion.
Imagino que es algo asi.
Un abrazo.
Carlos |
|
| Volver arriba |
|
 |
Carlos J. Fernandez Master


Registrado: 27 Oct 2004Mensajes: 574
|
Publicado: Mar 11 Nov, 2008 4:51 pm Asunto: |
|
|
Por si a alguien le interesa hacer el Alias en vez de Cliente hacerlo de sistema solo hay que cambiar una linea.
Donde pone:
Registry->RootKey = HKEY_CURRENT_USER;
Hay que poner:
Registry->RootKey = HKEY_LOCAL_MACHINE;
Lo he probado y parece que va bien, sin problemas.
Un abrazo.
Carlos |
|
| Volver arriba |
|
 |
alfredo Master

Registrado: 13 Oct 2003Mensajes: 246Ubicación: Valencia Venezuela
|
Publicado: Dom 16 Nov, 2008 6:16 pm Asunto: |
|
|
Hola, pasaba por aqui y me puse a mirar los post, si tu programa es cliente/servidor y te decides por Firebird (paa mi la mejor opcion).
Prepara un instalador para el server, una opcion muy facil es empaquetar
el instalador de firebird junto con la base de datos en un archivo sfx con winrar configurado para lanzar el instalador de firebird automaticamente,
el usuario solo tendra que darle a siguente, siguente etc. En los SO like NT
por defecto queda como servicio e inicia con el sistema.
No te compliques usando ODBC, para conectarte con un server firebird
solo requieres lo siguente:
FBClient.dll o esta misma renonbrada Gds.32.dll en el caso que uses compos de la paleta interbase, en el path.
Saber el nombre de maquina o direccion Ip donde corre Firebird.
Saber la ruta a la base de datos o su alias definido en aliases.cfg de
la carpeta de firebird.
Que el puerto 3050 este abierto tanto en el servidor como en los clientes, o sea para xp añadir la excepcion en el firewall de windows.
Para saber el nombre de maquina tienes dos opciones, o se la preguntas
al usuario o haces ping a todas las ips de la subred en el puerto 3050 hasta obtener respuesta.
Respecto a la ruta puedes ponerla fija ej. C:\Data\miDatabase o jugar
con el aliases.cfg, ya lo dejo a tu imaginacion.
Bueno espero te sea util la informacion y saludos. |
|
| Volver arriba |
|
 |
|
|
No puedes publicar temas nuevos en este foro No puedes responder a temas en este foro No puedes editar tus mensajes en este foro No puedes borrar tus mensajes en este foro No puedes votar en las encuestas de este foro
|
© 2002–2026 Club Builder · Funciona con phpBB.
|