create package with varrieble to accept the filename or filepath..then create stored procedure..
CREATE PROCEDURE [dbo].[Sp_RunPackage_new]
(
@filename varchar(1000)
--@packagepath varchar(1000)
)
AS
BEGIN
declare @packagepath varchar(250)
SET @packagepath = 'D:\SSIS Workings\RunPackage\bin\csvTosql.dtsx'
IF NULLIF(LTRIM(RTRIM(@filename)), '') IS NULL
BEGIN
RAISERROR('Invalid filename', 16 , 1)
END
IF NULLIF(LTRIM(RTRIM(@packagepath)), '') IS NULL
BEGIN
RAISERROR('Invalid package filename', 16 , 1)
END
DECLARE @dtsExecCmd VARCHAR(4000)
SET @dtsExecCmd = 'dtexec /F "' + ltrim(rtrim(@packagepath)) + '"'
SET @dtsExecCmd = @dtsExecCmd + ' /De "test"'
SET @dtsExecCmd = @dtsExecCmd + ' /SET "\package.Variables[User::InputFileName].Properties[Value]";"' + @filename +'"'
DECLARE @result INT
EXEC @result = master..xp_cmdshell @dtsExecCmd
END
(
@filename varchar(1000)
--@packagepath varchar(1000)
)
AS
BEGIN
declare @packagepath varchar(250)
SET @packagepath = 'D:\SSIS Workings\RunPackage\bin\csvTosql.dtsx'
IF NULLIF(LTRIM(RTRIM(@filename)), '') IS NULL
BEGIN
RAISERROR('Invalid filename', 16 , 1)
END
IF NULLIF(LTRIM(RTRIM(@packagepath)), '') IS NULL
BEGIN
RAISERROR('Invalid package filename', 16 , 1)
END
DECLARE @dtsExecCmd VARCHAR(4000)
SET @dtsExecCmd = 'dtexec /F "' + ltrim(rtrim(@packagepath)) + '"'
SET @dtsExecCmd = @dtsExecCmd + ' /De "test"'
SET @dtsExecCmd = @dtsExecCmd + ' /SET "\package.Variables[User::InputFileName].Properties[Value]";"' + @filename +'"'
DECLARE @result INT
EXEC @result = master..xp_cmdshell @dtsExecCmd
END
Create a form with a single button click just call the stored procedure..
button_ClickEvent
{
string fileName;
OpenFileDialog opnFileDlg = new OpenFileDialog();
opnFileDlg.DefaultExt = ".csv";
opnFileDlg.Filter = "CSV documents (.csv)|*.csv";
Nullable<bool> result = opnFileDlg.ShowDialog();
if (result == true && result != null)
{
// Open document
fileName = opnFileDlg.FileName;
using (SqlConnection con = new SqlConnection(@"Data Source=ILINKSYS-183\SQLSERVER2008R2;User Id=sa;Password=!QAZ1qaz;Initial Catalog=TestSSIS"))
{
try
{
con.Open();
SqlCommand cmd = new SqlCommand("Sp_RunPackage_new", con);
SqlParameter par = new SqlParameter("@InputFileNameServer", fileName);
cmd.CommandType = System.Data.CommandType.StoredProcedure;
cmd.Parameters.Add(par);
cmd.ExecuteNonQuery();
con.Close();
}
catch
{
throw;
}
}
MessageBox.Show(fileName+" Executed Successfully");
}
}
OpenFileDialog opnFileDlg = new OpenFileDialog();
opnFileDlg.DefaultExt = ".csv";
opnFileDlg.Filter = "CSV documents (.csv)|*.csv";
Nullable<bool> result = opnFileDlg.ShowDialog();
if (result == true && result != null)
{
// Open document
fileName = opnFileDlg.FileName;
using (SqlConnection con = new SqlConnection(@"Data Source=ILINKSYS-183\SQLSERVER2008R2;User Id=sa;Password=!QAZ1qaz;Initial Catalog=TestSSIS"))
{
try
{
con.Open();
SqlCommand cmd = new SqlCommand("Sp_RunPackage_new", con);
SqlParameter par = new SqlParameter("@InputFileNameServer", fileName);
cmd.CommandType = System.Data.CommandType.StoredProcedure;
cmd.Parameters.Add(par);
cmd.ExecuteNonQuery();
con.Close();
}
catch
{
throw;
}
}
MessageBox.Show(fileName+" Executed Successfully");
}
}
}
No comments:
Post a Comment