PDA

Ver la Versión Completa : conexión de Base de Datos Local a Remota


cybergerman
21-09-2004, 02:04:06
Estoy trabajando con los componentes IBX e Interbase 6.5
mi duda es que ahora estoy trabajando con la BD en modo local, pero al momento de instalar la aplicación la misma va a ser remota.

Tengo que instalar Delphi 7 en el Servidor para cambiar el tipo de acceso en el componente ibx DB????

AGAG4
21-09-2004, 03:31:47
Solo tienes que instalar la Base de datos como Servidor, y los clientes redireccionarlos, es decir vas a cambiar todo de local a remoto por ejemplo:
Ip:192.168.1.100:c:\bd\bdatos.gdb

Neftali [Germán.Estévez]
21-09-2004, 09:19:54
Nunca hay que instalar Delphi para que se pueda ejecutar una aplicación hecha en delphi (en ese caso deberías pagar la licencia del Delphi que instalas ya que no sirve la del tuyo...)

En el servidor sólo debes instalar la parte servidor de la Base de Datos.
En los Clientes deberás instalar los drivers clientes de la Base de Datos, tu programa de Delphi (con las BPL's correspondientes si es que usas packages) y librerías externas (si es que utilizas alguna).

cybergerman
22-09-2004, 15:12:57
Gracias por sus respuestas pero mi duda es la siguiente:

Yo en el compoenente ibx TIBDatabase tengo asignada la opción base de datos local.

Si la Base de Datos se en instala en un Servidor,Al momento de la instalación de la aplicación como hago para cambiar la opción de este componente.(ya que para cambiarlo necesito tener Delphi instalado).

En Interbase se que como se hace,pero si yo lo cambio aquí, que sucede con la aplicación ya que la misma dice que la Base de Datos es local.

Neftali [Germán.Estévez]
22-09-2004, 15:55:32
En ese caso tendrás que idear un sistema para poder configurar esa conexión;
Por ejemplo puedes crear un sencillo archivo de texto que contenga los parámetros y tu aplicación al cargar (y antes de activar la Base de Datos) que busque ese fichero y lea de él los parámetros de conexión (puedes utilizar ficheros INI y la clase de Delphi TIniFiles).
ësta es simplemente una opción, pero hay muchas otras, por ejemplo puedes crear un formulario de configuración dentro de tu propia aplicación y la primera vez que arrancas que aparezca el form de configuración y el usuario deba rellenarlo; Puedes utilizar el registro de Windows,... hay infinidad de posibilidades.

La idea es que la conexión no esté puesta directamente en el control TIBDataBase como la tienes ahora.

AGAG4
22-09-2004, 16:12:43
Como usa la clase de Delphi TIniFiles Sr. Neftali????
Disculpe que me meta :)

Neftali [Germán.Estévez]
23-09-2004, 10:18:18
Es sencillo, incluso si buscas en la ayuda de delphi encontrarás ejemplos; De todas formas aquí te adjunto un pequeño código que puedes probar en un form, que lo que hace es guardar (en el close) y restaurar el estado (en el crete) de un form en un fichero INI utilizzando la clase TIniFile.


procedure TForm1.FormCreate(Sender: TObject);
var
Status: Integer;
begin
IniFile := TIniFile.Create (ChangeFileExt (
Application.ExeName, '.ini'));
{try to read a value and test if it exists}
{Intenta leer el valor y comprueba si existe}
Status := IniFile.ReadInteger ('MainForm', 'Status', 0);
if Status <> 0 then
begin
{read position and size using current values as default}
[Lee del fichero las posiciones usando valor por defecto]
Top := IniFile.ReadInteger ('MainForm', 'Top', Top);
Left := IniFile.ReadInteger ('MainForm', 'Left', Left);
Width := IniFile.ReadInteger ('MainForm', 'Width', Width);
Height := IniFile.ReadInteger ('MainForm', 'Height', Height);
{set the minimized or maximized status}
{Cambia el estado de la ventana}
case Status of
// 1: WindowState := wsNormal;
//this is already the default
2: WindowState := wsMinimized;
3: WindowState := wsMaximized;
end;
end;
end;
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
var
Status: Integer;
begin
if MessageDlg ('Grabar el estado actual del formulario?',
mtConfirmation, [mbYes, mbNo], 0) = IdYes then
begin
Status := 1; // default //valor por defecto
case WindowState of
wsNormal: begin
{save position and size only if the state is normal}
{Guarda la posición y tamaño sólo si el estado es normal}
IniFile.WriteInteger ('MainForm', 'Top', Top);
IniFile.WriteInteger ('MainForm', 'Left', Left);
IniFile.WriteInteger ('MainForm', 'Width', Width);
IniFile.WriteInteger ('MainForm', 'Height', Height);
end;
wsMinimized: Status := 2;
{useless: this value is never set by VCL for the main form}
{ëste valor nunca se coloca por la VCL para el form principal}
wsMaximized: Status := 3;
end;
{check if the window is minimized, that is, if the form is hidden and not active}
{comppueba si la ventana está minimizada, oses si el form está oculto y no activo}
if not Active then
Status := 2;
{write status information}
{escribe la info. de estado}
IniFile.WriteInteger ('MainForm', 'Status', Status);
end;
{in any case destroy the IniFile object}
{en cualquier caso destruye el objeto IniFile}
IniFile.Free;
end;

Paoti
23-09-2004, 19:19:33
Ejemplo claro y conciso... hasta yo lo use....




que esten bien...



nos vemos compáñeros

rarratia
27-09-2004, 15:38:47
Amigos:

A ver si me pueden ayudar. Cómo me conecto a un servidor remoto en que tengo la IP y Puerto de conexión con TSQLConnection??????
Dentro de los parámetros no aparece el puerto y cuando intento conectarme aparece el error: en que está inválido el usuario o la password y no es así.
Espero me puedan ayudar, gracias...