84 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
			
		
		
	
	
			84 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
| using System;
 | |
| using System.Collections.Generic;
 | |
| using System.Linq;
 | |
| using System.Text;
 | |
| using System.Threading.Tasks;
 | |
| using System.Data;
 | |
| using System.Data.Sql;
 | |
| using System.Data.SqlClient;
 | |
| using System.IO;
 | |
| 
 | |
| namespace PromsGetDoc
 | |
| {
 | |
| 	class Program
 | |
| 	{
 | |
| 		// arguments are:
 | |
| 		//	docId
 | |
| 		//	filename/pathname for resulting word doc
 | |
| 		//	sql server name
 | |
| 		//	database name
 | |
| 
 | |
| 		// Can be run from command line or from macro in microsoft office tools as shown here:
 | |
| 		//		Sub Macro1()
 | |
| 		//      Call Shell("""Path_To_Exe\PromsGetDoc.exe"" 5 C:\temp\sample3.doc .\sqlexpress veproms_app", vbNormalFocus)
 | |
| 		//		End Sub
 | |
| 		static void Main(string[] args)
 | |
| 		{
 | |
| 			if (args.Length != 4)
 | |
| 			{
 | |
| 				Console.WriteLine("Need 4 arguments: DocId, Output File/Path, Server Name, Database Name");
 | |
| 				return;
 | |
| 			}
 | |
| 			Console.WriteLine("Volian Enterprises Proprietary Software - Copyright 2015 \r\n\n" +
 | |
| 				"To be used under the Volian PROMS End User License Agreement (EULA).\r\n\nFor AP-1000 Westinghouse internal use only.\r\n"); 
 | |
| 			byte[] doc = null;
 | |
| 			int _docId = int.Parse(args[0]);
 | |
| 			string connectionStr = string.Format(@"Data Source={0};Initial Catalog={1};Integrated Security=True", args[2], args[3]);
 | |
| 			try
 | |
| 			{
 | |
| 				using (SqlConnection cn = new SqlConnection(connectionStr))
 | |
| 				{
 | |
| 					cn.Open();  // do I need this?
 | |
| 					using (SqlCommand cm = cn.CreateCommand())
 | |
| 					{
 | |
| 						cm.CommandType = CommandType.StoredProcedure;
 | |
| 						cm.CommandText = "getDocument";
 | |
| 						cm.Parameters.AddWithValue("@DocID", _docId);
 | |
| 						cm.CommandTimeout = 100;
 | |
| 						using (SqlDataReader dr = cm.ExecuteReader())
 | |
| 						{
 | |
| 							if (!dr.Read())
 | |
| 							{
 | |
| 								Console.WriteLine("ERROR: No Record Found");
 | |
| 								return;
 | |
| 							}
 | |
| 							doc = (byte[])dr.GetValue(2);
 | |
| 						}
 | |
| 					}
 | |
| 				}
 | |
| 			}
 | |
| 			catch (Exception ex)
 | |
| 			{
 | |
| 				Console.WriteLine("ERROR: Could not access/read data. Check server and database name. " + ex.Message);
 | |
| 				return;
 | |
| 			}
 | |
| 			if (doc != null)
 | |
| 			{
 | |
| 				try
 | |
| 				{
 | |
| 					FileInfo fi = new FileInfo(args[1]);
 | |
| 					FileStream fs = fi.Create();
 | |
| 					fs.Write(doc, 0, doc.Length);
 | |
| 					fs.Close();
 | |
| 					Console.WriteLine("{0} was successfully created.", fi.FullName);
 | |
| 				}
 | |
| 				catch (Exception ex1)
 | |
| 				{
 | |
| 					Console.WriteLine("ERROR: Could not write Word file. " + ex1.Message);
 | |
| 					return;
 | |
| 				}
 | |
| 			}
 | |
| 		}
 | |
| 	}
 | |
| }
 |