Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Firebird e Interbase
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 19-05-2010
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.101
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Esas cosas no me pasan porque siempre uso servidores linux
Responder Con Cita
  #2  
Antiguo 19-05-2010
sur-se sur-se is offline
Miembro
 
Registrado: may 2003
Posts: 212
Poder: 22
sur-se Va por buen camino
je je .. uno de mi opinión ... a mi me pasa igual .. siempre que puedo servidor linux ...

pero hay clientes que se "encasquetan" con el güindous.
Responder Con Cita
  #3  
Antiguo 19-05-2010
sur-se sur-se is offline
Miembro
 
Registrado: may 2003
Posts: 212
Poder: 22
sur-se Va por buen camino
Bueno, el tema del borrado de la tabla. No sé si debería ir en otro hilo, pero bueno, como salió aquí, pues a ver si Donald puede ayudarme, o algún otro compañero. Es un ejemplo sencillo sin controles de errores ni similar. Es para que lo veáis.

Coloco en la pantalla 5 botones:
button1 --> conectar con la Bd
button5 --> desconectar de la bd
button3 --> crear un tabla y commit
button2 --> ejecutar proceso de inserts y commit
button4 --> borrar la tabla creada commit

Un label1 para poner un texto.

En pantalla los componentes fibplus:
FIBdatabase para conectar con la BD
una pareja fibtransaction1/fibquery1
otra pareja fibtransaction2/fibquery2

Código:
procedure TForm1.Button1Click(Sender: TObject);
begin
     pFIBDatabase1.Connected:=true;
end;

procedure TForm1.Button5Click(Sender: TObject);
begin
     pFIBDatabase1.Connected:=false;
end;

procedure TForm1.pFIBDatabase1AfterConnect(Sender: TObject);
begin
     label1.caption:='Conectada';
end;

procedure TForm1.pFIBDatabase1AfterDisconnect(Sender: TObject);
begin
     label1.caption:='Desconectado';
end;

procedure TForm1.Button2Click(Sender: TObject);
var i:integer;
begin
     pFIBTransaction2.StartTransaction;
     with pFIBQuery2 do
     begin
          close;
          sql.clear;
          sql.add('INSERT INTO TMPPRUEBA( C1, C2) VALUES (:c1, :c2)');
          Prepare;
          for i:=1 to 100 do
          begin
               ParamByName('c1').value:=i;
               ParamByName('c2').value:=i;
               ExecQuery;
          end;
          close;

     end;
     pFIBTransaction2.Commit;
     showmessage('Terminado');
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
     pFIBTransaction1.StartTransaction;
     with pFIBQuery1 do
     begin
          close;
          sql.clear;
          sql.Add('CREATE TABLE TMPPRUEBA ( C1 INTEGER, C2 INTEGER )');
          ExecQuery;
     end;
     pFIBTransaction1.Commit;
end;

procedure TForm1.Button4Click(Sender: TObject);
begin
     pFIBTransaction1.StartTransaction;
     with pFIBQuery1 do
     begin
          close;
          sql.clear;
          sql.Add('DROP TABLE TMPPRUEBA ');
          ExecQuery;
     end;
     pFIBTransaction1.Commit;
end;
Se conecta con la Bd, se crea la tabla, se ejectua el proceso, se borra la tabla.
Si el servidor es 1.5, funciona bien. Si es 2.x al borrar la tabla da un error de "object metadata in use".
Todo tiene sus commits correspondientes.
En 2.x, después de crear y ejectuar, si desconecto de la bd y vuelvo a conectar ya puedo borrarla.
Un saludo.
Responder Con Cita
  #4  
Antiguo 19-05-2010
Avatar de guillotmarc
guillotmarc guillotmarc is offline
Miembro
 
Registrado: may 2003
Ubicación: Huelva
Posts: 2.638
Poder: 24
guillotmarc Va por buen camino
¿ Utilizas la última versión disponible de Firebird 2.1 (2.1.3) ?. Parece claro que la tabla queda bloqueada más allá del tiempo durante el que realizas la transacción (y solo se desbloquea al desconectar la base de datos).

Normalmente estos problemas los suelen solventar en las actualizaciones de cada nueva versión de Firebird.
__________________
Marc Guillot (Hi ha 10 tipus de persones, els que saben binari i els que no).
Responder Con Cita
  #5  
Antiguo 19-05-2010
Avatar de guillotmarc
guillotmarc guillotmarc is offline
Miembro
 
Registrado: may 2003
Ubicación: Huelva
Posts: 2.638
Poder: 24
guillotmarc Va por buen camino
Cita:
Empezado por Casimiro Notevi Ver Mensaje
Esas cosas no me pasan porque siempre uso servidores linux
Yo no puedo hacerlo, mi programa lo pongo en tiendas, y lo normal es que haya dos, tres ordenadores de promedio.

Utilizan uno de los ordenadores como servidor y cliente a la vez.

No puedo decirles que añadan un servidor Linux dedicado, así que me toca lidiar con Windows y sus tonterías.

__________________
Marc Guillot (Hi ha 10 tipus de persones, els que saben binari i els que no).
Responder Con Cita
  #6  
Antiguo 19-05-2010
[maeyanes] maeyanes is offline
Capo de los Capos
 
Registrado: may 2003
Ubicación: Campeche, México
Posts: 2.732
Poder: 24
maeyanes Va por buen camino
Hola...

Sobre el detalle de las rutas especiales en Windows, el mismo S.O. ofrece funciones para saber cuales son esas rutas.

La mayoría de los generadores de instaladores son capaces de obtener esas rutas no importa que versión de Windows es y desde tus aplicaciones de delphi solo necesitas usar las funciones del API. Busquen información sobre la función: SHGetSpecialFolderPath, a mi me ha evitado muchos dolores de cabeza...


Saludos...
Responder Con Cita
  #7  
Antiguo 19-05-2010
Avatar de guillotmarc
guillotmarc guillotmarc is offline
Miembro
 
Registrado: may 2003
Ubicación: Huelva
Posts: 2.638
Poder: 24
guillotmarc Va por buen camino
Cita:
Empezado por maeyanes Ver Mensaje
Hola...

Sobre el detalle de las rutas especiales en Windows, el mismo S.O. ofrece funciones para saber cuales son esas rutas.

La mayoría de los generadores de instaladores son capaces de obtener esas rutas no importa que versión de Windows es y desde tus aplicaciones de delphi solo necesitas usar las funciones del API. Busquen información sobre la función: SHGetSpecialFolderPath, a mi me ha evitado muchos dolores de cabeza...


Saludos...
Sí, pero cuando instalas el programa en el Cliente, el instalador no puede saber si el Servidor se ha instalado en un XP o Windows 7, así que no sabes si tienes que poner la cadena de conexión a \Program Files o a \Archivos de Programa.

Así que una buena solución es ahora evitar del todo la carpeta \Archivos de Programa.

NOTA: Bueno, en realidad la mejor solución es utilizar un Alias de Firebird y así no tienes que poner ningún tipo de ruta.
__________________
Marc Guillot (Hi ha 10 tipus de persones, els que saben binari i els que no).
Responder Con Cita
  #8  
Antiguo 19-05-2010
[maeyanes] maeyanes is offline
Capo de los Capos
 
Registrado: may 2003
Ubicación: Campeche, México
Posts: 2.732
Poder: 24
maeyanes Va por buen camino
Hola...

Pues desde el mismo instalador puedes editar el archivo .ini y usas la ruta donde se instaló tu aplicación... yo lo hago así desde Inno Setup...


Saludos...
Responder Con Cita
  #9  
Antiguo 20-05-2010
Avatar de RONPABLO
[RONPABLO] RONPABLO is offline
Miembro Premium
 
Registrado: oct 2004
Posts: 1.514
Poder: 21
RONPABLO Va por buen camino
Alias

Cita:
Empezado por guillotmarc
Así que una buena solución es ahora evitar del todo la carpeta \Archivos de Programa.
Yo tenia también ese problema con la ruta archivos de programa y pensé también en seguir instalando mi bd en una ruta directa como "C:\miPrograma\bd.fdb" pero ya me ha tocado uno que otro listo que al ver una carpeta directamente sobre C:\ la han borrado cosa que me pasaba menos cuando estaba en Archivos de Programa, así que buscando lo mejor que encontré fue usar el archivo alias.conf, así solo tengo que estar pendiente en el servidor de que la ruta sea la correcta y siempre en mis clientes conecto a "servidor:alias".
__________________
"Como pasa el tiempo..... ayer se escribe sin H y hoy con H"
Responder Con Cita
  #10  
Antiguo 20-05-2010
Avatar de guillotmarc
guillotmarc guillotmarc is offline
Miembro
 
Registrado: may 2003
Ubicación: Huelva
Posts: 2.638
Poder: 24
guillotmarc Va por buen camino
Cita:
Empezado por RONPABLO Ver Mensaje
Yo tenia también ese problema con la ruta archivos de programa y pensé también en seguir instalando mi bd en una ruta directa como "C:\miPrograma\bd.fdb" pero ya me ha tocado uno que otro listo que al ver una carpeta directamente sobre C:\ la han borrado cosa que me pasaba menos cuando estaba en Archivos de Programa, así que buscando lo mejor que encontré fue usar el archivo alias.conf, así solo tengo que estar pendiente en el servidor de que la ruta sea la correcta y siempre en mis clientes conecto a "servidor:alias".
Sí, utilizar el alias.conf es la mejor opción.
__________________
Marc Guillot (Hi ha 10 tipus de persones, els que saben binari i els que no).
Responder Con Cita
  #11  
Antiguo 20-05-2010
Avatar de guillotmarc
guillotmarc guillotmarc is offline
Miembro
 
Registrado: may 2003
Ubicación: Huelva
Posts: 2.638
Poder: 24
guillotmarc Va por buen camino
Hola.

Cita:
Empezado por maeyanes Ver Mensaje
Hola...

Pues desde el mismo instalador puedes editar el archivo .ini y usas la ruta donde se instaló tu aplicación... yo lo hago así desde Inno Setup...


Saludos...
Yo también utilizo Inno Setup, es fantástico.

No puedes hacer esto, porqué como ya he dicho esto solo funciona cuando haces la instalación en el Servidor.

Cuando haces la instalación en el Servidor, el Instalador sabe perfectamente en que carpeta se deja la base de datos, y puede cambiar el ini donde se guarda la cadena de conexión.

Esto funciona muy bien.

Pero cuando haces la instalación en el cliente, el Instalador no tiene ninguna forma de saber en que carpeta se ha dejado la base de datos en el Servidor (un día de estos tengo que empezar a utilizar Alias de Firebird, y olvidarme de las rutas a la carpeta donde se guarda la base datos).
__________________
Marc Guillot (Hi ha 10 tipus de persones, els que saben binari i els que no).

Última edición por guillotmarc fecha: 20-05-2010 a las 11:27:26.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Dlephi 6 - Windows 7 - SQL Server 2008 andresu723 MS SQL Server 0 14-04-2010 16:33:50
Instalacion de Servicio Windows Server 2008 genius Varios 2 27-12-2009 23:44:04
Problema DBExpress en Windows Server 2008 cmagno Conexión con bases de datos 0 12-02-2009 14:39:11
firebird y .net 2008 voldemmor .NET 0 27-11-2008 17:15:54
No más Windows XP a partir de 2008 kinobi Noticias 15 17-04-2007 19:57:13


La franja horaria es GMT +2. Ahora son las 10:20:54.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi