FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#21
|
||||
|
||||
Cita:
Eso creo, al menos. Saludos.
__________________
Marc Guillot (Hi ha 10 tipus de persones, els que saben binari i els que no). |
#22
|
||||
|
||||
Tenes toda la razón , se me cruzaron los cables mal. me confundí con otro post de DA! :P
|
#23
|
|||
|
|||
Hola.
No, puede ser el problema el protocolo de red que indicas (IPC vs XNET), pues la cadena de conexión que utilizo es de la forma <nombre del servidor>:<ruta local a la base de datos>. Los equipos que están en red no conectan con la base de datos tampoco. Es decir, ni desde el propio servidor (con localhost o con el nombre de red) ni desde los equipos cliente. Ahora bien, cambio a 2.1 y si funciona sin cambiar nada en los equipos clientes. Inexplicable. Un saludo. |
#24
|
||||
|
||||
Hola.
Ya me parecía a mi que el código de error no se correspondía a ese problema, aún así es lo primero que se viene a la cabeza en un Windows con servicios de Terminal. Googleando ese error, parece ser que en lugar de localhost tienes que usar la dirección IP (supongo que se refiere a eso cuando habla de node address). http://tech.groups.yahoo.com/group/f.../message/54779 Pruébalo.
__________________
Marc Guillot (Hi ha 10 tipus de persones, els que saben binari i els que no). |
#25
|
|||
|
|||
Hola. Normalmente el servidor lo suelo dejar dedicado, como es este caso, por lo que no se trabaja en él. La cadena de conexión que utilizo siempre es <nombre del servidor>:<ruta local a la base de datos>.
En el propio servidor también he probado así, es decir, como si fuese una conexión de red. La cuestión es que no conectan ni los equipos de la red ni desde el propio servidor con esa cadena de conexión. No suelo utilizar lo del localhost salvo excepciones. Ahora bien, desinstalo 1.5 e instalo el 2.x y ya funciona bien todo. La misma aplicación, con la misma cadena de conexión. El cortafuegos está abierto por ese puerto (3050) y el remoto (que lo fijo en el firebird.conf). De hecho, si no fuese así tampoco funcionaría el 2.x. No sé que más mirar. Un saludo. |
#26
|
||||
|
||||
Ya sé que parece una tontería, pero para descartar lo que dice Helen Borrie en ese hilo, ¿ puedes probar usando la dirección IP en lugar del nombre de servidor ?.
Ejplo.: 10.0.0.125:C:\Datos\CLIENTES.DAT
__________________
Marc Guillot (Hi ha 10 tipus de persones, els que saben binari i els que no). |
#27
|
||||
|
||||
Por cierto, el "Cannot attach to services manager" parece que indica que el Servidor no ha arrancado en absoluto.
¿ Puedes ir al panel de control, herramientas administrativas, Services, y comprovar que el servicio Firebird Server esté arrancado ?, además, como prueba adicional, paralo un momento y a continuación arrancalo manualmente. A ver si arranca bien o da un error (como también parece indicar el "control services error 1061" del Firebird.log).
__________________
Marc Guillot (Hi ha 10 tipus de persones, els que saben binari i els que no). |
#28
|
||||
|
||||
Por si sirve de algo...
Acabo de mirar un cliente que recordaba que tiene un servidor Win2008. Tiene la versión Firebird 1.5.2 funcionando. Puede hacer backups y restores correctamente. Puede conectarse con IBExpert Puede conextarse con su aplicación. |
#29
|
|||
|
|||
SOLUCIONADO !!!!
..... bueno, pongo la solución, evidentemente. Pero primero que nada gracias a todos por vuestra ayuda. El problema era una tontería. Yo ya me lo imaginaba .... Si es que por estas cosas yo siempre prefiero servidores linux con CentOS ... Pues bien, en windows 2008 cuando se instala el firebird lo hace en c:\Archivos de programa\Firebird\Firebird_1_5 (en la versión en Español). Por el nuevo sistema de rutas para los programas, realmente es c:\Program Files. Esto parece una tontería, pero resulta que la versión 1.5.6 no es capaz de gestionar bien esto nuevo y no consigue acceder a la base de datos security.fdb. El resultado es que no entra nadie porque no se puede acceder a la base de datos de usuarios. He editado el fichero firebird.conf para cambiar el rootdirectory y ponerlo fijo a c:\Program Files\Firebird\Firebird_1_5 y ahora si funciona. He podido crear los usuarios de la base de datos y ya todo funciona bien. Una tontería, ya lo sé, pero tenía que funcionar... Ahora puedo ir tranquilamente adaptando la aplicación al 2.x (bueno corrigiendo los errores de los alias) y demás. Un saludo |
#30
|
|||
|
|||
Hola...
¿Ya probaste usando la IP del servidor en la cadena de conexión? Si funciona podría ser que necesitas hacer que a tu servidor lo puedan ver las otras PC's de la red, esto es, en el "Centro de redes y recursos compartidos" de W2K8 hay una opción que indica si las otras PC's de la red pueden ver a tu servidor. Yo tenía un problema similar, no podía conectarme a un servidor vía su nombre pero si por su IP, activé esa opción y poblema solucionado... Saludos... |
#31
|
|||
|
|||
Vaya... por no refrescar la página antes de contestar mi sugerencia llegó demasiado tarde xDDD
|
#32
|
||||
|
||||
Cita:
|
#33
|
|||
|
|||
Hola. No en XP y anteriores. En Windows 7 y en WS2008, realmente es c:\Program Files y para cada idioma se mapea a c:\Archivos de programa o el que sea en otros idiomas. Más o menos eso me parece, no soy ningún experto en Windows.
Realmente el sistema operativo entiende c:\Program Files, porque de hecho cuando se instala la aplicación te pone c:\Program Files\Firebird\Firebird_1_5 y no C:\Archivos de Programa\Firebird\Firebird_1_5 como ocurría en XP o anteriores. Quizás algún experto en WS2K8 pueda ilustrarnos sobre ello, pero lo que si te aseguro que ha sido cambiar eso y ya funcionaba el 1.5.6. por otra parte, estoy preparando un ejemplo de lo del drop table para ver si tiene solución, ya que salió en el hilo. Un saludo. |
#34
|
||||
|
||||
Cita:
Si sobre el servidor accedo en local como C:\Program Files\Prog\Datos.dat, entonces los clientes no pueden conectar como servidor:C:\Archivos de Programa\Prog\Datos.dat. Todas las máquinas tienen que conectar usando Program Files, o bien Archivos de Programa (que es un symlink a Program Files), pero no se pueden mezclar. ¿ Seguro que te preguntas porqué hago una cosa tan estúpida ?. Es una herencia del proceso de instalación que creé cuando solo existía "Archivos de Programa". La instalación en los clientes me deja la cadena de conexión en "C:\Archivos de Programa" que es el valor que usaba por defecto en Windows 95/98/ME/XP/... (si uso otra carpeta del servidor, tengo que modificar el ini manualmente). En cambio en el Servidor, como el instalador sabe perfectamente la carpeta donde se realiza la instalación, modifica la cadena de conexión (y la deja en Program Files). En definitiva, que para evitar estos problemas (y no hacer chapuzas en la instalación de que si el S.O. es uno utilizo una cadena por defecto, y otro, otra cadena), lo que he terminado haciendo es no utilizando para nada la carpeta "Archivos de Programa", y a partir de ahora colgar directamente mis programas de una subcarpeta en la raíz (con lo que también me ahorro muchos problemas de restricciones por seguridad que Vista/7 añaden a lo que se encuentra en Archivos de Programa).
__________________
Marc Guillot (Hi ha 10 tipus de persones, els que saben binari i els que no). |
#35
|
||||
|
||||
Esas cosas no me pasan porque siempre uso servidores linux
|
#36
|
|||
|
|||
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. |
#37
|
|||
|
|||
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; 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. |
#38
|
||||
|
||||
¿ 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). |
#39
|
||||
|
||||
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). |
#40
|
|||
|
|||
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... |
|
|
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 |
|