Ver Mensaje Individual
  #3 (permalink)  
Antiguo 18/12/2007, 15:45
NOMERCY777
 
Fecha de Ingreso: diciembre-2007
Mensajes: 1
Antigüedad: 17 años, 3 meses
Puntos: 0
Re: Ejecutar un archivo ".sql" desde C# .NET

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