Select a Txt desde el cliente

27/04/2007 - 01:28 por edwindelgadoc | Informe spam
Hola amigos.
Ojala me puedan ayudar con esto, lo q necesito es enviar una sentencia
select a un archivo txt, pero esto debe ejecutarse desde el cliente,es
decir cuando el cliente desee obtener dicho archivo, en este caso
desde VFP, asi q como en las PC's del los usuarios no tienen instalado
SLQ Server y menos derechos de sysadmin en la BD no puedo trabajar con
las utilidades osql ni bcp.
Lo que estoy viendo es q en el Query analizer (estoy trabajando con
Sql Server 7) se tiene la opción de enviar el resultado (sin ser un
usuario con muchos acceso) a un archivo txt, esto se logra cambiando
la opción "Default Results target" del menú "Tools \ Options \
Results "
Alguien sabe q comando utiliza el Sql para realizar esta operación? he
tratado de capturarlo con un trace pero no he tenido exito.

Gracias.
Edwin Delgado.

Preguntas similare

Leer las respuestas

#1 Jose Mariano Alvarez
27/04/2007 - 01:38 | Informe spam
En el post ,
DIJO .
Hola amigos.
Ojala me puedan ayudar con esto, lo q necesito es enviar una sentencia
select a un archivo txt, pero esto debe ejecutarse desde el cliente,es
decir cuando el cliente desee obtener dicho archivo, en este caso
desde VFP, asi q como en las PC's del los usuarios no tienen instalado
SLQ Server y menos derechos de sysadmin en la BD no puedo trabajar con
las utilidades osql ni bcp.
Lo que estoy viendo es q en el Query analizer (estoy trabajando con
Sql Server 7) se tiene la opción de enviar el resultado (sin ser un
usuario con muchos acceso) a un archivo txt, esto se logra cambiando
la opción "Default Results target" del menú "Tools \ Options \
Results "
Alguien sabe q comando utiliza el Sql para realizar esta operación? he
tratado de capturarlo con un trace pero no he tenido exito.

Gracias.
Edwin Delgado.






Eso no es de SQL sino de permisos de windows.
Pregunta en el foro de windows o de VFP.


Saludos
Ing. Jose Mariano Alvarez


(Cambia los ceros por O y saca lo que sobra)


IMPORTANTE

Por favor traten de indicar la versión de SQL y Service Pack.
La inclusión de (CREATE, INSERTS, etc.) para poder reproducir el
problema también ayuda.
Respuesta Responder a este mensaje
#2 Gustavo Larriera (MVP)
27/04/2007 - 16:44 | Informe spam
Sin ánimos de ofender: Lo que estás proponiendo es una idea arquitectónica
algo patológica y pobremente diseñada.

En mi opinión deberías hacer la SELECT desde el programa cliente, luego
porcesar el resultado (recordset) en el programa cliente para que genere un
texto o un reporte.

Gustavo Larriera, MVP
https://mvp.support.microsoft.com/p...o.Larriera
http://blogs.solidq.com/ES/glarriera
Este mensaje se proporciona tal como es, sin garantías de ninguna clase.



"" wrote:

Hola amigos.
Ojala me puedan ayudar con esto, lo q necesito es enviar una sentencia
select a un archivo txt, pero esto debe ejecutarse desde el cliente,es
decir cuando el cliente desee obtener dicho archivo, en este caso
desde VFP, asi q como en las PC's del los usuarios no tienen instalado
SLQ Server y menos derechos de sysadmin en la BD no puedo trabajar con
las utilidades osql ni bcp.
Lo que estoy viendo es q en el Query analizer (estoy trabajando con
Sql Server 7) se tiene la opción de enviar el resultado (sin ser un
usuario con muchos acceso) a un archivo txt, esto se logra cambiando
la opción "Default Results target" del menú "Tools \ Options \
Results "
Alguien sabe q comando utiliza el Sql para realizar esta operación? he
tratado de capturarlo con un trace pero no he tenido exito.

Gracias.
Edwin Delgado.


Respuesta Responder a este mensaje
#3 edwindelgadoc
27/04/2007 - 18:25 | Informe spam
Si, lo q hago actualmente es eso, procesar la infomación en el cliente
con la sgte sentencias:

GO TOP
DO WHILE NOT EOF()
STRTOFILE (Cempresa + "|"+Csistelec+ "|" + Codsum;
+ "|" + STR(Año,4,0) + "|" + STR(Mes,2,0);
+ "|" + STR(CodTarifa,2,0) + "|" + STR(Etot,12,2) + "|" + STR(Factura,
12,2);
+ "|" + STR(Otros,12,2) + chr(13) + chr(10), "Venta002.txt", .T.)
SKIP
ENDDO

Pero son en promedio 174,000 registros y el proceso me demora unos 20
minutos, mientras q con la opción "Results to File" del Query
Analayser lo hace en unos 5segundos...es por eso q me intrigaba saber
el comando Sql.
Pero bueno, tratare de optimizar mis sentencias en el cliente (ya q
los formatos del "Copy to...Type" del VFP no me son muy utiles).
Garcias de todas maneras.


On 27 abr, 09:44, Gustavo Larriera (MVP)
wrote:
Sin ánimos de ofender: Lo que estás proponiendo es una idea arquitectónica
algo patológica y pobremente diseñada.

En mi opinión deberías hacer laSELECTdesde el programacliente, luego
porcesar el resultado (recordset) en el programaclientepara que genere un
texto o un reporte.

Gustavo Larriera, MVPhttps://mvp.support.microsoft.co...rrierahttp://blogs.solidq.com/ES/glarriera
Este mensaje se proporciona tal como es, sin garantías de ninguna clase.
Respuesta Responder a este mensaje
#4 Jose Mariano Alvarez
27/04/2007 - 23:25 | Informe spam
En el post ,
DIJO .
Si, lo q hago actualmente es eso, procesar la infomación en el cliente
con la sgte sentencias:

GO TOP
DO WHILE NOT EOF()
STRTOFILE (Cempresa + "|"+Csistelec+ "|" + Codsum;
+ "|" + STR(Año,4,0) + "|" + STR(Mes,2,0);
+ "|" + STR(CodTarifa,2,0) + "|" + STR(Etot,12,2) + "|" + STR(Factura,
12,2);
+ "|" + STR(Otros,12,2) + chr(13) + chr(10), "Venta002.txt", .T.)
SKIP
ENDDO

Pero son en promedio 174,000 registros y el proceso me demora unos 20
minutos, mientras q con la opción "Results to File" del Query
Analayser lo hace en unos 5segundos...es por eso q me intrigaba saber
el comando Sql.
Pero bueno, tratare de optimizar mis sentencias en el cliente (ya q
los formatos del "Copy to...Type" del VFP no me son muy utiles).
Garcias de todas maneras.


On 27 abr, 09:44, Gustavo Larriera (MVP)
wrote:
> Sin ánimos de ofender: Lo que estás proponiendo es una idea arquitectónica
> algo patológica y pobremente diseñada.
>
> En mi opinión deberías hacer laSELECTdesde el programacliente, luego
> porcesar el resultado (recordset) en el programaclientepara que genere un
> texto o un reporte.
>
> Gustavo Larriera, MVPhttps://mvp.support.microsoft.co...rrierahttp://blogs.solidq.com/ES/glarriera
> Este mensaje se proporciona tal como es, sin garantías de ninguna clase.






En VB.NET seguramente tarde mucho menos.
Sugiero que te asegures que el cursor lo cree en al cliente



Saludos
Ing. Jose Mariano Alvarez


(Cambia los ceros por O y saca lo que sobra)


IMPORTANTE

Por favor traten de indicar la versión de SQL y Service Pack.
La inclusión de (CREATE, INSERTS, etc.) para poder reproducir el
problema también ayuda.
Respuesta Responder a este mensaje
#5 edwindelgadoc
28/04/2007 - 00:23 | Informe spam
Ok, ya encontré unos comandos muchos mas rápidos.
Ya se q este no es el foro adecuado (disculpas por eso), pero lo pongo
por si alguien lo necesite mas adelante:

nFile = Fcreate("d:\miarchivo.txt")
Sele paso
GO TOP
Scan
cFila = Cempresa + "|"+Csistelec+ "|" + Codsum
+ "|" + STR(Año,4,0) + "|" + STR(Mes,2,0);
+ "|" + STR(CodTarifa,2,0) + "|" + STR(Etot,12,2) + "|" +
STR(Factura,12,2);
+ "|" + STR(Otros,12,2)

Fputs(nFile,cFila)
EndScan
Fclose(nFile)



On 27 abr, 16:25, Jose Mariano Alvarez
wrote:
En el post ,
DIJO .

> > Gustavo Larriera, MVPhttps://mvp.support.microsoft.co...rrierahttp://blog...
> > Este mensaje se proporciona tal como es, sin garantías de ninguna clase.


En VB.NET seguramente tarde mucho menos.
Sugiero que te asegures que el cursor lo cree en alcliente


Saludos
Ing. Jose Mariano Alvarez


(Cambia los ceros por O y saca lo que sobra)


IMPORTANTE

Por favor traten de indicar la versión de SQL y Service Pack.
La inclusión de (CREATE, INSERTS, etc.) para poder reproducir el
problema también ayuda.- Ocultar texto de la cita -

- Mostrar texto de la cita -
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida