Ejecutar lote sql desde ado

10/08/2004 - 21:47 por Carlos A. Díaz | Informe spam
Hola, estoy intentando ejecutar un lote de instrucciones sql contra un
SQLSERVER y estoy intentando usar el procedimiento execute del objeto
connection de ado, pero no me da resultado, el lote seria masomenos asi:
(fue creado con el asistente)

USE GestCor
GO

if not exists (select * from master..syslogins where name N'GestCorProgram')
BEGIN
declare @logindb nvarchar(132), @loginlang nvarchar(132) select @logindb N'GestCor', @loginlang = N'Español'
if @logindb is null or not exists (select * from master..sysdatabases where
name = @logindb)
select @logindb = N'master'
if @loginlang is null or (not exists (select * from master..syslanguages
where name = @loginlang) and @loginlang <> N'us_english')
select @loginlang = @@language
exec sp_addlogin N'GestCorProgram', '[pwd]' , @logindb, @loginlang
END
GO

Pero cuando paso esta cadena, me da error, intente con sp_executesql y
tampoco, me podrian decir como seria para ejecutar ese lote desde el execute
de objeto connection y vb.

Saludos

Gracias

Preguntas similare

Leer las respuestas

#1 SoftJaén
11/08/2004 - 12:13 | Informe spam
"Carlos A. Díaz" escribió:

Mostrar la cita
Hola, Carlos:

No estoy yo muy puesto en T-SQL, pero como tampoco has indicado el error que
obtienes, me da a mí que pensar que las palabras claves USE y GO, no se
pueden utilizar para ejecutar una consulta mediante el método «Execute» del
objeto «Connection», ya que creo que son palabras reservadas del «Analizador
de consultas», pograma cliente que se acompaña con la licencia de Microsoft
SQL Server 2000.

Prueba a quitar dichas palabras, porque para utilizar la base de datos
«GestCor», solo basta que especifiques dicha base en el parámetro «Initial
Catalog» de la cadena de conexión del objeto «Connection». Aparte, deberás
de delimitar bien las líneas de la consulta para que se adapten a una cadena
alfanumérica de Visual Basic.

Te dejo un ejemplo que he adaptado de los Libros en Pantalla, para que
observes cómo se escribiría la consulta para crear, en este caso, una nueva
base de datos:

cnn.Execute "CREATE DATABASE Sales " & _
"ON " & _
"( NAME = Sales_dat," & _
"FILENAME = 'C:\Archivos de programa\...\saledat.mdf'," & _
"SIZE = 10," & _
"MAXSIZE = 50," & _
"FILEGROWTH = 5 )" & _
"LOG ON" & _
"( NAME = 'Sales_log'," & _
"FILENAME = 'D:\Archivos de programa\...\salelog.ldf'," & _
"SIZE = 5MB," & _
"MAXSIZE = 25MB," & _
"FILEGROWTH = 5MB )", , adCmdText

NOTA: En los parámetros «FILENAME» deberás de escribir la ruta completa
donde desees crear la base de datos.

En fin, no sé si será la solución a tu problema, pero menos da una piedra.
:-)

Un saludo

Enrique Martínez
[MS MVP - VB]
http://mvp-access.com/softjaen/

Nota informativa: La información contenida en este mensaje, así como el
código fuente incluido en el mismo, se proporciona «COMO ESTÁ», sin
garantías de ninguna clase, y no otorga derecho alguno. Usted asume
cualquier riesgo al poner en práctica, utilizar o ejecutar lo recomendado o
sugerido en el presente mensaje.
#2 Lluís Franco
11/08/2004 - 12:41 | Informe spam
Hola Carlos,
Es comando GO no es propio de T-SQL y solo es reconocido por el cliente sql.
[...] "GO is not a Transact-SQL statement; it is a command recognized by the
osql and isql utilities and SQL Query Analyzer..."

Private Sub Command1_Click()
Dim oCon As New ADODB.Connection
Dim sSQL As String
oCon.Open _
"Provider=SQLOLEDB.1;" & _
"Persist Security Info=False;" & _
"User ID=sa;" & _
"Initial Catalog=pubs;" & _
"Data Source=SERV_SQL"

sSQL = sSQL & "USE Pubs "
sSQL = sSQL & "SELECT * FROM authors "
sSQL = sSQL & "USE Northwind "
sSQL = sSQL & "SELECT * FROM Customers"

oCon.Execute sSQL
oCon.Close
Set oCon = Nothing
End Sub

Acabo de probar este lote y funciona perfectamente, así que prueba a quitar
GO de tu SQL y ya me contarás...
Saludos,

Lluís Franco i Montanyés
[MS-MVP-MCP Visual Basic]

FIMARGE, S.A.
Principat d'Andorra

Tel.: +376 805 100
Fax: +376 824 500
Mi Perfil MVP en: http://tinyurl.com/4nbnb

This posting is provided "AS IS" with no warranties, and confers no rights.
Este mensaje se proporciona "COMO ESTA" sin garantias y no otorga ningun
derecho

(Guía de netiquette del foro)
http://www.uyssoft.com/Netiquette/
#3 SoftJaén
11/08/2004 - 13:03 | Informe spam
"Lluís Franco" escribió:

Mostrar la cita
Entonces sólo está prohibída la palabra «GO»

Por cierto, Lluís:

¿Dónde jugará Etoo la próxima temporada? ¿Y Michael Owen?
http://www.marca.es/edicion/noticia...01,00.html



Enrique Martínez
[MS MVP - VB]
http://mvp-access.com/softjaen/

Nota informativa: La información contenida en este mensaje, así como el
código fuente incluido en el mismo, se proporciona «COMO ESTÁ», sin
garantías de ninguna clase, y no otorga derecho alguno. Usted asume
cualquier riesgo al poner en práctica, utilizar o ejecutar lo recomendado o
sugerido en el presente mensaje.
#4 Lluís Franco
11/08/2004 - 13:18 | Informe spam
Mostrar la cita
Bue... lo de Florentino con el pobre Etoo no tiene nombre, pobre chavál...
¡que juegue dónde quiera! Si sólo falta que le encadenen los tobillos y le
pongan una argola al cuello, ¡cachis!
Y lo de Owen... con un par! si señor! 30 kilotes por un tio que (como Raul)
ya está en declive... ¡mú bien!

* Opiniones personales del autor *
* No se pretende ofender a nadie *
* Aparte de los Sres. Martínez y Vigón *
:-DDD


Lluís Franco i Montanyés
[MS-MVP-MCP Visual Basic]

FIMARGE, S.A.
Principat d'Andorra

Tel.: +376 805 100
Fax: +376 824 500
Mi Perfil MVP en: http://tinyurl.com/4nbnb

This posting is provided "AS IS" with no warranties, and confers no rights.
Este mensaje se proporciona "COMO ESTA" sin garantias y no otorga ningun
derecho

(Guía de netiquette del foro)
http://www.uyssoft.com/Netiquette/
#5 Carlos Sacristan
11/08/2004 - 13:21 | Informe spam
Lluís, Lluís... no te metas en esos temas que puedes salir "escaldado"
;-)

Como salga bien lo de Owen, nos quedamos con este, mandamos a Eto'o pa'l
Liverpool y os quedáis con un palmo de narices :-P

Además, eso de "jugar donde quiera"... coñe, que no hubiera firmao un
contrato así. Que se atenga a las consecuencias ahora!! Pobrecitos
jurgolistas, que sólo cobran 500 kilos (de los antiguos) al año y se sienten
esclavizaos porque no pueden cobrar el doble en otro club...

** opiniones también mú personales mías **
** por supuesto, sin ninguna mala intención **
** excepto la de meter el dedo en el ojo a los culés ;- **

PD: buen rollito eh?, que en esto del jurgol los ánimos se caldean
enseguida :-D

Un saludo

-
"Sólo sé que no sé nada. " (Sócrates)

Por favor, responder únicamente al foro
Se agradece la inclusión de sentencias DDL


"Lluís Franco" escribió en el mensaje
news:eIEy#
Mostrar la cita
Raul)
Mostrar la cita
rights.
Mostrar la cita
Ads by Google
Search Busqueda sugerida