ID|nombre_equipo
1 |BBL52E_02
2 |OSO52E_04
por cada uno de esos equipos necesito ejecutar el procedimiento almacenado 3 veces, para poder traer 2 datos correspondientes a cada equipo y el resultado exportarlo a un archivo.CSV. estos serian los procedimientos que debería ejecutar por ejemplo para el equipo numero uno (BBL52E_02).
exec sp_trendView @tablename='collect', @tagname='analog.BBL52E_02_____P.curval', @columnname='value' , @starttime='01/09/2013 00:00:00', @endtime= '01/09/2013 23:59:00'
exec sp_trendView @tablename='collect', @tagname='analog.BBL52E_02_____Q.curval', @columnname='value' , @starttime='01/09/2013 00:00:00', @endtime= '01/09/2013 23:59:00'
exec sp_trendView @tablename='collect', @tagname='analog.BBL52E_02_____S.curval', @columnname='value' , @starttime='01/09/2013 00:00:00', @endtime= '01/09/2013 23:59:00'
si se fijan lo único que cambia en cada ejecución del procedimiento es el campo llamado "tagname".
este es mi código donde solo ejecuto una ves el procedimiento:
Código c#:
espero me puedan ayudar!!! Ver original
using System; using System.Data; using System.Data.Odbc; using MySql.Data.MySqlClient; using System.IO; namespace TestODBC { class Program { static void Main(string[] args) { MostrarDatos(); Console.ReadLine(); DateTime Hoy = DateTime.Today; } private static void MostrarDatos() { string strFilePath = @"C:\ datas.csv"; using (OdbcConnection oCn = new OdbcConnection("Driver={Sybase System 10};SRVR=CMX;DB=timeline;DSN=Default;UID=xisapp;PWD=apphistory;")) { try { string proc = String.Format("exec sp_trendView @tablename='{0}', @tagname='{1}', @columnname='{2}', @starttime='{3}', @endtime= '{4}'", "collect", "analog.BBL52B_02_____P.curval", "value", "01/09/2013 00:00:00", "01/09/2013 23:59:00"); OdbcCommand oCmd = new OdbcCommand(proc,oCn); DataTable rows = new DataTable("datos"); OdbcDataAdapter oDt = new OdbcDataAdapter(oCmd); oCn.Open(); try { oDt.Fill(rows); StreamWriter sw = new StreamWriter(strFilePath, false); int iColCount = rows.Columns.Count; sw.Write("Alimentador"); sw.Write(","); sw.Write("Fecha"); sw.Write(","); sw.Write("P"); sw.Write(","); sw.Write("Q"); sw.Write(","); sw.Write("S"); sw.Write(sw.NewLine); foreach (DataRow row in rows.Rows) { sw.Write("BBL52B_02".ToString()); sw.Write(","); sw.Write(row[0].ToString()); sw.Write(","); sw.Write(row[2].ToString()); sw.Write(sw.NewLine); } sw.Close(); Console.WriteLine("Proceso Finalizado"); } catch (Exception ex) { Console.WriteLine(String.Format("Error al consultar procedimiento : {0}", ex.Message)); } } catch (Exception ex) { Console.WriteLine(ex.Message); } } } } }