Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 21-03-2021
Gregorio Cíber Gregorio Cíber is offline
Miembro
 
Registrado: jun 2008
Posts: 98
Poder: 17
Gregorio Cíber Va por buen camino
Firebird remoto - Modificar registros

¡Hola amigos!

Utilizando los antiguos componentes FIBPlus, conecto con una BD remota (Firebird 3.0) con el código siguiente:

Código Delphi [-]
Base.DBName  := 'xxx.xxx.xxx.xxx:alias_bd';
Base.LibraryName := camino_aplicacion_local + 'fbclient.dll';
with Base do
begin
  DBParams.Clear;
  DBParams.Add('lc_ctype=ISO8859_1');
  DBParams.Add('user_name=SYSDBA');
  DBParams.Add('password=' + clave;
  DBParams.Add('sql_role_name=' + rol;
  Connected := True;
end;

La conexión se establece perfectamente, se pueden hacer consultas, ejecutar procedimientos almacenados que devuelvan valores, vistas, etc. Todo menos modificar registros de la BD. Por ejemplo, esto no funciona:

Código Delphi [-]
Base.tra_General.Active := True;
Base.tra_General.StartTransaction;
Base.qry_General.ExecProc;
Base.tra_General.Commit;
Base.ra_General.Active := False;

Siendo el código SQL del componente qry_General (TpFIBQuery):

Código SQL [-]
update tbl_clientes
set nombre = nombre || ' algo'
where (cid_cliente = xxxx)

Esta tontada de código SQL es simplemente una prueba después de cansarme de ejecutar un procedimiento almacenado que debía crear un pedido y que no he conseguido hacer que funcione.

Alguna sugerencia. De todas formas, gracias.
Responder Con Cita
  #2  
Antiguo 22-03-2021
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.257
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Pregunta obvia: ¿existe el cliente xxxx?
Responder Con Cita
  #3  
Antiguo 22-03-2021
Gregorio Cíber Gregorio Cíber is offline
Miembro
 
Registrado: jun 2008
Posts: 98
Poder: 17
Gregorio Cíber Va por buen camino
Cita:
Empezado por Casimiro Notevi Ver Mensaje
Pregunta obvia: ¿existe el cliente xxxx?
Gracias por responder, Casimiro.

Sí, por supuesto.
Mediante IBExpert se accede a la BD y se mantiene exactamente igual que si fuera local, lo que me hace pesar que el problema no esté en el ordenador, router o firewall del servidor.
Responder Con Cita
  #4  
Antiguo 22-03-2021
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.257
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
A ver si estás apuntando a otra BD en ese alias.
Responder Con Cita
  #5  
Antiguo 22-03-2021
Gregorio Cíber Gregorio Cíber is offline
Miembro
 
Registrado: jun 2008
Posts: 98
Poder: 17
Gregorio Cíber Va por buen camino
Cita:
Empezado por Casimiro Notevi Ver Mensaje
A ver si estás apuntando a otra BD en ese alias.
Gracias Casimiro.
No, todo en el procedimiento era correcto a excepción de lo que faltaba, que era un Close al final
Ya funciona perfecto. Gracias de nuevo.
Responder Con Cita
  #6  
Antiguo 23-03-2021
Gregorio Cíber Gregorio Cíber is offline
Miembro
 
Registrado: jun 2008
Posts: 98
Poder: 17
Gregorio Cíber Va por buen camino
¡Hola amigos!

Retomando este hilo quiero plantear una situación para ver qué solución veis más factible.

Desde Delphi, mediante un TTimmer, se chequea periódicamente una tabla de pedidos y se localizan los que hay que transmitir a un servidor remoto. Este es el procedimiento que no funcionaba por un error mío y objeto de este hilo. Ya va perfecto.

El periodo de tiempo lo estable el cliente a voluntad. Pueden ser pocos segundos, varios minutos incluso horas. Y aquí es dónde se plantea el problema.

Supongamos que el tiempo se estable en 60 segundos (para otra cantidad sería exactamente igual). Agotado este tiempo se hace una selección de los pedidos que están pendientes de enviar y se activa el proceso de envío. Esto, como ya dije antes, funciona bien.

Pero, ¿y si la selección empieza con pedidos que no están terminados? Es decir, ¿y si en uno a varios pedidos no se ha terminado de introducir todas las líneas?. Evidentemente estos pedidos serían seleccionados y enviados, sólo que con parte de las líneas de detalle que no componen, no todas.

He pensado en poner un botón para marcar el pedido una vez que se dé por terminado. Pero, ¿hay alguna otra solución más elegante? Esta me parece un poco 'cutre', no sé que pensáis vosotros.

Agradezco sugerencias. Gracias.
Responder Con Cita
  #7  
Antiguo 23-03-2021
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.257
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Debes crear un hilo nuevo para esa pregunta, porque aparte de que incumple las normas del foro, nadie va a entrar a leer esa pregunta porque van a ver en el título "Firebird remoto - Modificar registros", y no tiene nada que ver con tu pregunta, que puede ser respondida por personas que ya hayan pasado por ese problema.
Responder Con Cita
  #8  
Antiguo 23-03-2021
Gregorio Cíber Gregorio Cíber is offline
Miembro
 
Registrado: jun 2008
Posts: 98
Poder: 17
Gregorio Cíber Va por buen camino
Perdón. Así lo haré.
Responder Con Cita
  #9  
Antiguo 23-03-2021
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.257
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
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
Acceso remoto a Firebird adrall SQL 2 06-01-2011 14:35:27
modificar registros yossi SQL 6 11-06-2010 04:43:58
Acceso remoto a una BD Firebird mRoman Conexión con bases de datos 9 05-07-2008 04:55:38
modificar registros query Buelos Firebird e Interbase 8 02-03-2008 01:52:00
Firebird remoto Cañones Firebird e Interbase 2 06-02-2008 02:48:00


La franja horaria es GMT +2. Ahora son las 02:36:36.


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