Que onda BROTHERS, miren un script si se puede ejecutar desde código pero primero hay que hacer unas magias con ellos. Miren por un ejemplo un store procedure llamado Cliente.sql que contiene:
Cita:
Iniciado por LEONIDASOSEAYO
USE [SPprueba]
GO
/****** Object: StoredProcedure [dbo].[spXCCliente] Script Date: 12/18/2007 15:15:54 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[spXCCliente]
@Header int=0,
@id int = 0,
@ID2 int = 0,
@Cliente nchar(10) = NULL
AS
BEGIN
IF @Header= 1
BEGIN
INSERT INTO Cliente (id, ID2, Cliente)
VALUES (@id, @ID2, @Cliente)
END
END
En codigo tendrian que hacer un respaldo (si asi lo quieren) y cambiarle la extension... tambien al gusto del programador, y despues de llamarlo Cliente.txt, abren el archivo y se lo pasan a una variable y le quitan por código esta parte:
USE [SPprueba]
GO
/****** Object: StoredProcedure [dbo].[spXCCliente] Script Date: 12/18/2007 15:15:54 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
Esto por que cuando lo ejecuten en los métodos que les pongo abajo, pues notaran que se pone por default,
------------------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------------------
public void AccionCompilarSP(string Template)
{
OleDbConnection conection = null;
OleDbDataReader dataReader = null;
Server = Program.GServer; // Se obtiene de una clase que es el punto de acceso principal de la aplicaCION
DataBase = Program.GDataBase; // lo mismo
User = Program.GUser; //lo mismo
Password = Program.GPassword; // lo mismo
string OLEDBConec= "Provider=SQLOLEDB.1;Password="+Password+";Per sist Security Info=True;User ID="+User+";Initial Catalog="+DataBase+";Data Source="+Server;
try
{
conection = new OleDbConnection(OLEDBConec);
conection.Open();
ExecuteSQL(Template, conection, ref dataReader);
}
catch (Exception e)
{
MessageBox.Show(e.Message, "ScriptEjecutor", MessageBoxButtons.OK, MessageBoxIcon.Error);
return;
}
finally
{
if (conection != null)
{
conection.Close();
}
if (dataReader != null)
{
dataReader.Close();
}
}
}
public static void ExecuteSQL(string query, OleDbConnection conection, ref OleDbDataReader dataReader)
{
OleDbCommand comando;
try
{
comando = conection.CreateCommand();
comando.CommandType = CommandType.Text;
comando.CommandText = query;
if (dataReader != null)
{
dataReader.Close();
}
dataReader = comando.ExecuteReader();
}
catch (Exception e)
{
throw e;
}
}
-----------------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------------
Claro que se pueden hacer mil y un magias, pero este solo es un ejemplo de como se ejecuta un Script desde código
Vientos, ahi se ven
Saludos