77 lines
2.8 KiB
C#
77 lines
2.8 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Data.SqlClient;
|
|
using System.IO;
|
|
using System.IO.Compression;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
|
|
namespace SystemX.Product.CP.TRA.Extract
|
|
{
|
|
|
|
public class DBService
|
|
{
|
|
private string connectionString = "Server=192.168.0.69;Database=CPXV2ShortTermLogJson;User Id=Alis;Password=Kefico!@34;";
|
|
|
|
public void GetLargeData()
|
|
{
|
|
// 1. 연결 생성
|
|
using (SqlConnection conn = new SqlConnection(connectionString))
|
|
{
|
|
try
|
|
{
|
|
// 2. 실행할 쿼리 작성 (JOIN 포함)
|
|
string sql = @"SELECT [TestListFileNo]
|
|
,[StepID]
|
|
,[StepVersion]
|
|
,[StepDesc]
|
|
,[SpecMin]
|
|
,[SpecMax]
|
|
,[Dim]
|
|
FROM [CPXV2].[dbo].[VRFY_TestListFileRelease] where StepDesc like 'an10_off' order by testlistfileno";
|
|
|
|
SqlCommand cmd = new SqlCommand(sql, conn);
|
|
// 타임아웃 설정 (600만 건은 시간이 걸릴 수 있으므로 0(무제한) 또는 넉넉하게 설정)
|
|
cmd.CommandTimeout = 300;
|
|
conn.Open();
|
|
|
|
// 3. DataReader로 데이터 읽기
|
|
using (SqlDataReader reader = cmd.ExecuteReader())
|
|
{
|
|
while (reader.Read())
|
|
{
|
|
// 예: 데이터 처리 로직
|
|
var val = Decompression(reader["LogData"].ToString());
|
|
}
|
|
}
|
|
|
|
//sql = @"SELECT * FROM HIST_LogSummary_2025 as Summary with(nolock) JOIN HIST_TestResult_2025 as Result with(nolock) ON Summary.No = Result.No";
|
|
}
|
|
catch (SqlException ex)
|
|
{
|
|
Console.WriteLine("DB 오류 발생: " + ex.Message);
|
|
}
|
|
}
|
|
}
|
|
|
|
public static string Decompression(string compressedDataStr)
|
|
{
|
|
string result = null;
|
|
byte[] buffer = Convert.FromBase64String(compressedDataStr);
|
|
using (MemoryStream stream = new MemoryStream(buffer))
|
|
{
|
|
using (GZipStream stream2 = new GZipStream(stream, CompressionMode.Decompress))
|
|
{
|
|
using (StreamReader streamReader = new StreamReader(stream2))
|
|
{
|
|
result = streamReader.ReadToEnd();
|
|
}
|
|
}
|
|
}
|
|
|
|
return result;
|
|
}
|
|
}
|
|
}
|