284 lines
8.0 KiB
C#
284 lines
8.0 KiB
C#
/*********************************************************************************************
|
|
* Copyright 2004 - Volian Enterprises, Inc. All rights reserved.
|
|
* Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE
|
|
* ------------------------------------------------------------------------------
|
|
* $Workfile: vdb_Set.cs $ $Revision: 2 $
|
|
* $Author: Jsj $ $Date: 8/23/04 10:12a $
|
|
*
|
|
* $History: vdb_Set.cs $
|
|
*
|
|
* ***************** Version 2 *****************
|
|
* User: Jsj Date: 8/23/04 Time: 10:12a
|
|
* Updated in $/LibSource/VDB
|
|
* Fixed replace of single quote
|
|
*
|
|
* ***************** Version 1 *****************
|
|
* User: Kathy Date: 7/27/04 Time: 8:40a
|
|
* Created in $/LibSource/VDB
|
|
*********************************************************************************************/
|
|
|
|
using System;
|
|
using System.Data;
|
|
using System.Text;
|
|
using System.Collections.Specialized;
|
|
using System.Windows.Forms;
|
|
using VDB;
|
|
|
|
namespace VDB_Set
|
|
{
|
|
/// <summary>
|
|
/// Open, Create, Delete, Update functions for SET files (tables)
|
|
/// </summary>
|
|
public class vdb_Set:VDB_Base
|
|
{
|
|
public vdb_Set(String strPath):base(strPath)
|
|
{
|
|
// if no table (file name) specified, then default to SET (SET.DBF)
|
|
if (DBTable.Equals(""))
|
|
DBTable = "SET";
|
|
}
|
|
|
|
// Build the SQL command needed to update a row in the SET file
|
|
public override string GetRecUpdateStr(DataTable tbl,DataRow row)
|
|
{
|
|
int j = 0;
|
|
bool FirstOne = true;
|
|
StringBuilder updateStr = new StringBuilder();
|
|
StringBuilder LikeRecID = new StringBuilder();
|
|
bool NullEntry = false;
|
|
|
|
updateStr.Append("UPDATE [");
|
|
updateStr.Append(DBTable);
|
|
updateStr.Append("] SET");
|
|
|
|
foreach (DataColumn col in tbl.Columns)
|
|
{
|
|
bool isString = (col.DataType == Type.GetType("System.String"));
|
|
if (col.ColumnName.Equals("ENTRY") && row.ItemArray[j].ToString().Equals(""))
|
|
{
|
|
NullEntry = true;
|
|
j++;
|
|
continue;
|
|
}
|
|
if (col.ColumnName.Equals("RECID"))
|
|
{
|
|
LikeRecID.Append("___"); // ignore the first 3 positions
|
|
LikeRecID.Append(row.ItemArray[j].ToString(),3,5);
|
|
}
|
|
if (FirstOne)
|
|
{
|
|
updateStr.Append(" [");
|
|
FirstOne = false;
|
|
}
|
|
else
|
|
updateStr.Append(", [");
|
|
updateStr.Append(col.ColumnName);
|
|
updateStr.Append("]=");
|
|
|
|
if (row.ItemArray[j].ToString().Equals(""))
|
|
{
|
|
updateStr.Append("NULL");
|
|
}
|
|
else if (isString)
|
|
{
|
|
String tmpstr = row.ItemArray[j].ToString();
|
|
updateStr.Append("'");
|
|
tmpstr = tmpstr.Replace("'","''");
|
|
updateStr.Append(tmpstr);
|
|
updateStr.Append("'");
|
|
}
|
|
else if (col.DataType == Type.GetType("System.DateTime"))
|
|
{
|
|
int jj;
|
|
String tmpstr = row.ItemArray[j].ToString();
|
|
updateStr.Append("'");
|
|
jj=tmpstr.IndexOf(" ");
|
|
if (jj<0) jj = tmpstr.Length;
|
|
updateStr.Append(tmpstr.Substring(0,jj));
|
|
updateStr.Append("'");
|
|
}
|
|
j++;
|
|
}
|
|
if (NullEntry)
|
|
{
|
|
// So that we can change the RECID number on the first entry
|
|
updateStr.Append(" WHERE [ENTRY] IS NULL");
|
|
}
|
|
else
|
|
{
|
|
updateStr.Append(" WHERE [RECID] LIKE '");
|
|
updateStr.Append(LikeRecID.ToString());
|
|
updateStr.Append("' AND [ENTRY] IS NOT NULL");
|
|
}
|
|
return updateStr.ToString();
|
|
}
|
|
|
|
|
|
// Build the SQL command needed to insert a row in the SET file
|
|
public override string GetRecInsertStr(DataTable tbl,DataRow row)
|
|
{
|
|
int j = 0;
|
|
StringBuilder insrtStr = new StringBuilder();
|
|
StringBuilder valueStr = new StringBuilder();
|
|
|
|
insrtStr.Append("INSERT INTO [");
|
|
insrtStr.Append(DBTable);
|
|
insrtStr.Append("] (");
|
|
|
|
valueStr.Append(" VALUES (");
|
|
|
|
foreach (DataColumn col in tbl.Columns)
|
|
{
|
|
bool isString = (col.DataType == Type.GetType("System.String"));
|
|
insrtStr.Append("[");
|
|
insrtStr.Append(col.ColumnName);
|
|
insrtStr.Append("],");
|
|
|
|
if (row.ItemArray[j].ToString().Equals(""))
|
|
{
|
|
valueStr.Append("NULL");
|
|
}
|
|
else if (isString)
|
|
{
|
|
String tmpstr = row.ItemArray[j].ToString();
|
|
tmpstr = tmpstr.Replace("'","''");
|
|
valueStr.Append("'");
|
|
valueStr.Append(tmpstr);
|
|
valueStr.Append("'");
|
|
}
|
|
else if (col.DataType == Type.GetType("System.DateTime"))
|
|
{
|
|
int jj;
|
|
String tmpstr = row.ItemArray[j].ToString();
|
|
valueStr.Append("'");
|
|
jj = tmpstr.IndexOf(" ");
|
|
if (jj<0) jj=tmpstr.Length;
|
|
valueStr.Append(tmpstr.Substring(0,jj));
|
|
valueStr.Append("'");
|
|
}
|
|
else
|
|
{
|
|
valueStr.Append(row.ItemArray[j].ToString());
|
|
}
|
|
valueStr.Append(",");
|
|
j++;
|
|
}
|
|
|
|
insrtStr = insrtStr.Replace(',',')',insrtStr.Length-1,1);
|
|
valueStr = valueStr.Replace(',',')',valueStr.Length-1,1);
|
|
insrtStr.Append(valueStr.ToString());
|
|
|
|
return insrtStr.ToString();
|
|
}
|
|
|
|
// Build the SQL command needed to delete a row in the SET file
|
|
public override string RecDeleteStr(DataTable tbl,DataRow row)
|
|
{
|
|
int j = 0;
|
|
String RecIDStr = "";
|
|
String NumberStr = "";
|
|
StringBuilder deleteStr = new StringBuilder();
|
|
|
|
deleteStr.Append("DELETE FROM [");
|
|
deleteStr.Append(DBTable);
|
|
deleteStr.Append("] WHERE ");
|
|
|
|
row.RejectChanges();
|
|
foreach (DataColumn col in tbl.Columns)
|
|
{
|
|
if (col.ColumnName.Equals("NUMBER"))
|
|
{
|
|
NumberStr = row.ItemArray[j].ToString();
|
|
NumberStr = NumberStr.Replace("'","''");
|
|
}
|
|
else if (col.ColumnName.Equals("RECID"))
|
|
{
|
|
RecIDStr = row.ItemArray[j].ToString();
|
|
}
|
|
j++;
|
|
}
|
|
deleteStr.Append("[NUMBER] = '");
|
|
deleteStr.Append(NumberStr);
|
|
deleteStr.Append("' AND [RECID] = '");
|
|
deleteStr.Append(RecIDStr);
|
|
deleteStr.Append("' AND [ENTRY] IS NOT NULL");
|
|
|
|
return deleteStr.ToString();
|
|
|
|
}
|
|
|
|
// Build a list of SQL commands needed to create a new SET table (file)
|
|
// and add the first row
|
|
public override StringCollection CreateTableStatements(string strTblName)
|
|
{
|
|
StringCollection rtnStrColl = new StringCollection();
|
|
StringBuilder createStr = new StringBuilder();
|
|
// StringBuilder firstRecStr = new StringBuilder();
|
|
|
|
if (strTblName.Length > 0) // was a table name passd in?
|
|
{
|
|
DBTable = strTblName;
|
|
}
|
|
|
|
if (DBTable.Equals(""))
|
|
{
|
|
MessageBox.Show("Trying to Create a new Table without a Name","Create Table Error");
|
|
return rtnStrColl;
|
|
}
|
|
|
|
// Build the command that creates a new SET table (file)
|
|
createStr.Append("CREATE TABLE [");
|
|
createStr.Append(DBTable);
|
|
createStr.Append("] ");
|
|
createStr.Append("([TITLE] Char(250), [NUMBER] Char(20), [FORMAT] Char(1), ");
|
|
createStr.Append("[SUBDIR] Char(1), [ENTRY] Char(30), [RECID] Char(8), ");
|
|
createStr.Append("[PROCCODE] Char(1), [DATE] Date, [TIME] Char(5), ");
|
|
createStr.Append("INITIALS Char(5), SERIES Char(100))");
|
|
|
|
// // Build the command that adds the first (blank) record
|
|
// // with the RECID initialize to 00000001
|
|
// firstRecStr.Append("INSERT INTO [");
|
|
// firstRecStr.Append(DBTable);
|
|
// firstRecStr.Append("] ([RECID]) VALUES ('00000001')");
|
|
|
|
rtnStrColl.Add(createStr.ToString()); // add create table
|
|
// rtnStrColl.Add(firstRecStr.ToString()); // add inserst first record
|
|
|
|
return rtnStrColl;
|
|
}
|
|
|
|
// Build a list of SQL commands needed to create the first data row
|
|
public override StringCollection CreateFirstRecordStatement(string strTblName)
|
|
{
|
|
StringCollection rtnStrColl = new StringCollection();
|
|
StringBuilder firstRecStr = new StringBuilder();
|
|
|
|
// Build the command that adds the first (blank) record
|
|
// with the RECID initialize to 00000001
|
|
firstRecStr.Append("INSERT INTO [");
|
|
firstRecStr.Append(DBTable);
|
|
firstRecStr.Append("] ([RECID]) VALUES ('00000001')");
|
|
|
|
rtnStrColl.Add(firstRecStr.ToString()); // add inserst first record
|
|
|
|
return rtnStrColl;
|
|
}
|
|
|
|
// return a list of SQL commands that will drop (delete) a database table (file)
|
|
public override StringCollection DeleteTableStatements(string strTblName)
|
|
{
|
|
StringCollection rtnStrColl = new StringCollection();
|
|
StringBuilder DropTableStr = new StringBuilder();
|
|
|
|
DropTableStr.Append("Drop Table [");
|
|
DropTableStr.Append(DBTable);
|
|
DropTableStr.Append("]");
|
|
|
|
rtnStrColl.Add(DropTableStr.ToString());
|
|
return rtnStrColl;
|
|
}
|
|
|
|
}
|
|
|
|
}
|