#region BAS_SQL_Query
public static int BAS_SQL_Query(ref BASCoreType.BAS_SQL_Query_In_Tag SQL_Query_In, ref BASCoreType.BAS_SQL_Query_Out_Tag SQL_Query_Out)
{
ModelContext ctx = new ModelContext();
DbConnection conn = ctx.Database.GetDbConnection();
DbCommand cmd = conn.CreateCommand();
conn.Open();
try
{
string sMsgCode = "";
SQL_Query_Out._cmn_out._status_value = GlobalConstant.RESULT_ERROR;
int iCurRow = 0;
SQL_Query_Out._size_row = 0;
SQL_Query_Out.row_count = 0;
SQL_Query_Out.col_count = 0;
SQL_Query_Out.next_row = 0;
SQL_Query_In.sql = StringUtil.Trim(SQL_Query_In.sql);
if (SQL_Query_In.sql == "")
{
sMsgCode = "ETC-0001";
SQL_Query_Out._cmn_out._field_msg = "SQL Query";
return 0;
}
bool bSelect = false;
if (StringUtil.Mid(SQL_Query_In.sql, 0, 6).ToUpper() == "SELECT")
{
bSelect = true;
}
else if (StringUtil.Mid(SQL_Query_In.sql, 0, 4).ToUpper() == "WITH")
{
bSelect = true;
}
else if (StringUtil.Mid(SQL_Query_In.sql, 0, 5).ToUpper() == ";WITH")
{
bSelect = true;
}
else if (StringUtil.Mid(SQL_Query_In.sql, 0, 6).ToUpper() == "UPDATE")
{
bSelect = false;
}
else if (StringUtil.Mid(SQL_Query_In.sql, 0, 6).ToUpper() == "INSERT")
{
bSelect = false;
}
else if (StringUtil.Mid(SQL_Query_In.sql, 0, 6).ToUpper() == "DELETE")
{
bSelect = false;
}
else if (StringUtil.Mid(SQL_Query_In.sql, 0, 6).ToUpper() == "#PROSEL")
{
bSelect = true;
}
else
{
bSelect = true;
//Msg_Code = "ETC-0009";
//SQL_Query_Out._cmn_out._field_msg = "SQL = " + StringUtil.Mid(SQL_Query_In.sql, 0, 100);
//return false;
}
if (!bSelect)
{
cmd.CommandText = SQL_Query_In.sql;
cmd.ExecuteNonQuery();
conn.Close();
}
else
{
DataTable table = new DataTable();
cmd.CommandText = SQL_Query_In.sql;
DbDataReader reader = cmd.ExecuteReader();
table.Load(reader);
reader.Close();
conn.Close();
SQL_Query_Out.col_count = table.Columns.Count;
int iRows = table.Rows.Count;
for (int i = SQL_Query_In.next_row; i < iRows; i++)
{
if (iCurRow >= GlobalVariable.giMaxRecordsRows)
{
SQL_Query_Out.next_row = i;
break;
}
Array.Resize(ref SQL_Query_Out.row, iCurRow + 1);
SQL_Query_Out.row[iCurRow].col = new BASCoreType.BAS_SQL_Query_Out_Tag_row_col[SQL_Query_Out.col_count + 1];
SQL_Query_Out.row[iCurRow]._size_col = SQL_Query_Out.col_count;
for (int j = 0; j < SQL_Query_Out.col_count; j++)
{
if (table.Rows[i][j] == DBNull.Value)
{
SQL_Query_Out.row[iCurRow].col[j].name = "";
SQL_Query_Out.row[iCurRow].col[j].type = "";
SQL_Query_Out.row[iCurRow].col[j].size = "";
SQL_Query_Out.row[iCurRow].col[j].data = "";
}
else
{
SQL_Query_Out.row[iCurRow].col[j].name = table.Columns[j].ColumnName.ToString();
SQL_Query_Out.row[iCurRow].col[j].type = table.Columns[j].DataType.ToString();
SQL_Query_Out.row[iCurRow].col[j].size = StringUtil.ToString(table.Columns[j].MaxLength);
SQL_Query_Out.row[iCurRow].col[j].data = StringUtil.ToString(table.Rows[i][j]);
}
}
iCurRow++;
}
}
SQL_Query_Out.row_count = iCurRow;
SQL_Query_Out._size_row = iCurRow;
SQL_Query_Out._cmn_out._status_value = GlobalConstant.RESULT_SUCCESS;
if (sMsgCode != "")
{
SQL_Query_Out._cmn_out._msg_code = sMsgCode;
SQL_Query_Out._cmn_out._db_err_msg = DBGV._dbc.gErrors.ErrMsg;
CommonFunction.COM_GetErrorMsg(SQL_Query_In._cmn_in._language, sMsgCode, ref SQL_Query_Out._cmn_out._msg);
GlobalVariable.gLog.AddLog(sMsgCode, SQL_Query_Out._cmn_out._msg);
GlobalVariable.gLog.AddLog("FIELD_MSG", SQL_Query_Out._cmn_out._field_msg);
GlobalVariable.gLog.LogWrite("ERROR " + CommonFunction.gCOM_Msg_Title, "E");
}
}
catch (Exception ex)
{
SQL_Query_Out._cmn_out._status_value = GlobalConstant.RESULT_ERROR;
SQL_Query_Out._cmn_out._msg = ex.Message;
}
finally
{
if (conn.State != ConnectionState.Closed)
{
conn.Close();
}
}
return 0;
}
#endregion