Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 18-12-2007
Avatar de Cabanyaler
Cabanyaler Cabanyaler is offline
Miembro
 
Registrado: jun 2003
Ubicación: País Valencià
Posts: 339
Poder: 21
Cabanyaler Va por buen camino
Red face Trabajar con tablas #Temporales

Hola amigos.
Demasiado tiempo sin pasarme por aquí,

Entorno:
Trabajo con Delphi 6, conexiones ADO y un servidor SQL Server.

Quiero:
Trabajar con tablas temporales alojadas en el servidor del tipo #NombreTabla,
volcarles datos, recorrerlas, insertarles, etc, etc. Luego algunas de estas tablas vincularlas con fuentes de datos para visualizarlas en DBGrids, y poca cosa más.

Lo que hago hasta ahora sin exito:
Hace unos años atrás lo hice y no recuerdo haber sufrido tanto, así que algo debo estar olvidando.

Hasta ahora me he creado:
El DataModule aparte para sólo estas tablas.
Los Store Procedures de creación de las tablas (por cuestión de espacio sólo anexaré uno):

Código:
CREATE PROCEDURE ADOSP_Crea_TMPOBR
AS
Create Table tempdb.dbo.TMPOBR
(
            NumObra         varchar(5),
            ImpAcuTotObr real       
)
GO
En el data module de las temporales, he añadido un componente TAdoConnetion conectada a la BBDD tmpdb, y las correspondientes TAdoTable conectadas a dicha Connection.
Después de crear las tablas temporales con Store Procedures como el el anterior, que como digo no veo en la BBDD tmpdb, intento asignar mediante instrucciones del tipo:
Código:
  DataModuleTMP.ADOTb_TMPOBR.TableName  := 'TMPOBR';
y me salta error resumido: El nombre de objeto TMPOBR no es valido.
He probado tb con
Código:
  DataModuleTMP.ADOTb_TMPOBR.TableName  := 'tmpdb.dbo.TMPOBR';

Problema por desconocimiento de como hacerlo:
Me interesa poder asignar en tiempo de diseño a la propiedad de los componentes TadoTable.TableName, las tablas temporales que creo en tiempo de ejecución y que no veo en el Sql Server Enterprise manager en la BBDD tmpdb durante la ejecución del programa.
El fin de poderlo asignar es poder tener los nombres de los campos de forma persistente en los componentes TAdoTable y de ese modo poderlos añadir a los DBGrid que me interesen, hacer las operaciones que desee con dichas tablas, y después destruirlas.

Pregunta para resolver:
¿Sabeis como puedo trabajar con estas tablas temporales de modo parecido si no igual a las tablas que creo en tiempo de diseño en cualquier BBDD y a las cuales puedo acceder mediante componentes TadoStoreProc o cualquier otro DataSet mediante la asignación del nombre de la tabla a la propiedad TableName del componente?
Algúna URL donde dirigirme y consultar ejemplos (no he encontrado en Google).

Gracias a todos.
__________________
El meu país és tan petit, que des de dalt d'un campanar es pot veure el campanar veí.

Última edición por Cabanyaler fecha: 18-12-2007 a las 13:19:00.
Responder Con Cita
  #2  
Antiguo 18-12-2007
Avatar de Cabanyaler
Cabanyaler Cabanyaler is offline
Miembro
 
Registrado: jun 2003
Ubicación: País Valencià
Posts: 339
Poder: 21
Cabanyaler Va por buen camino
Wink Ya está

Como me gusta comentar mis propias soluciones y siempre hago:


1) Creo las tablas temporales

Código:
   SL := TStringList.Create;
   DMTMP.ADOConTmp.GetTableNames(SL, False);
   Existe := False;

   for index := 0 to (SL.Count - 1) do
     if (SL[index] = 'TMPOBR')     then Existe := True;
   if not(Existe) then CreoTablaTemp_TMPOBR();      // Conté les obres on hi han partes d'eixe mes, per eixa casa de lloguer i eixe centre
Donde CreoTablaTemp_TMPOBR() es:
Código:
/* Crea la taula temporal TMPOBR per a la acumulació dels imports totals de cadasquna de les obres */
CREATE PROCEDURE ADOSP_Crea_TMPOBR
AS
Create Table tempdb.dbo.TMPOBR
(
            NumObra         varchar(5),
            ImpAcuTotObr real       
)
GO


2) Abro la tabla

Código:
   // Les obric
   DMTMP.ADOTb_TMPOBR.Open;
Y la asignación de campos permanentes, el nombre de la tabla así como la asignación a los objetos TadoTable, lo hago en tiempo de diseño.

La edición de la ConnectionStrings de cada una de las conexiones que intervengan, se dá por conocida.

__________________
El meu país és tan petit, que des de dalt d'un campanar es pot veure el campanar veí.
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
Tablas Temporales Milperrimo Firebird e Interbase 7 25-10-2007 05:01:25
trabajar con tablas temporales reevil MySQL 1 15-05-2006 15:57:09
Tablas Temporales MySQL y Vb6 Payola2011 Varios 2 08-02-2006 20:52:04
Acceder a las tablas temporales oneromm Conexión con bases de datos 1 24-12-2003 10:52:18
Tablas Temporales en Interbase 7 bismarito Firebird e Interbase 5 02-10-2003 11:12:11


La franja horaria es GMT +2. Ahora son las 22:43:46.


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