huh
This commit is contained in:
parent
7cae86a78f
commit
cfab73c961
6
.gitignore
vendored
6
.gitignore
vendored
@ -1,4 +1,4 @@
|
||||
/bin
|
||||
/obj
|
||||
launch.json
|
||||
/bin
|
||||
/obj
|
||||
launch.json
|
||||
.gitignore
|
692
runner.cs
692
runner.cs
@ -1,346 +1,346 @@
|
||||
using System;
|
||||
using Npgsql;
|
||||
|
||||
namespace test
|
||||
{
|
||||
class Program
|
||||
{
|
||||
private
|
||||
|
||||
static void Main(string[] args)
|
||||
{
|
||||
|
||||
string scs = "";
|
||||
string dcs = "";
|
||||
string sdt = "";
|
||||
string ddt = "";
|
||||
string sq = "";
|
||||
string dt = "";
|
||||
Boolean trim = false;
|
||||
int r = 0;
|
||||
int t = 0;
|
||||
string sql = "";
|
||||
string nr = "";
|
||||
string nc = "";
|
||||
string nl = Environment.NewLine;
|
||||
//declaring these objects globally will asume these libraries exist, they may not
|
||||
System.Data.Odbc.OdbcConnection s_odbc = new System.Data.Odbc.OdbcConnection();
|
||||
System.Data.Odbc.OdbcConnection d_odbc = new System.Data.Odbc.OdbcConnection();
|
||||
NpgsqlConnection s_npgsql = new NpgsqlConnection();
|
||||
NpgsqlConnection d_npgsql = new NpgsqlConnection();
|
||||
System.Data.Common.DbConnection sc; //source connection
|
||||
System.Data.Common.DbConnection dc; //destination connection
|
||||
|
||||
string msg = "Help:";
|
||||
msg = msg + nl + "version 0.25";
|
||||
msg = msg + nl;
|
||||
msg = msg + nl + "options:";
|
||||
msg = msg + nl + "-sdt sourc driver type";
|
||||
msg = msg + nl + "-scs source connection string";
|
||||
msg = msg + nl + "-ddt destination driver type";
|
||||
msg = msg + nl + "-dcs destination connection string";
|
||||
msg = msg + nl + "-sq path to source query";
|
||||
msg = msg + nl + "-dt fully qualified name of destination table";
|
||||
msg = msg + nl + "-t trim text";
|
||||
msg = msg + nl + "--help info";
|
||||
msg = msg + nl;
|
||||
msg = msg + nl + "available driver types:";
|
||||
msg = msg + nl + "-------------------------";
|
||||
msg = msg + nl + "* odbc";
|
||||
msg = msg + nl + "* npgsql";
|
||||
|
||||
|
||||
//---------------------------------------parse args into variables-------------------------------------------------
|
||||
|
||||
for (int i = 0; i < args.Length; i = i +1 ){
|
||||
switch (args[i]) {
|
||||
//sourc driver type
|
||||
case "-sdt":
|
||||
sdt = args[i+1];
|
||||
break;
|
||||
//source connection string
|
||||
case "-scs":
|
||||
scs = args[i+1];
|
||||
break;
|
||||
//destination driver type
|
||||
case "-ddt":
|
||||
ddt = args[i+1];
|
||||
break;
|
||||
//destination connection string
|
||||
case "-dcs":
|
||||
dcs = args[i+1];
|
||||
break;
|
||||
//source query path
|
||||
case "-sq":
|
||||
try {
|
||||
sq = System.IO.File.ReadAllText(args[i+1]);
|
||||
}
|
||||
catch (Exception e) {
|
||||
Console.Write(nl + "error reasing source sql file: " + e.Message);
|
||||
return;
|
||||
}
|
||||
break;
|
||||
//destination table name
|
||||
case "-dt":
|
||||
dt = "INSERT INTO " + args[i+1] + " VALUES ";
|
||||
break;
|
||||
case "-t":
|
||||
trim = true;
|
||||
break;
|
||||
case "--help":
|
||||
Console.Write(nl);
|
||||
Console.Write(msg);
|
||||
return;
|
||||
case "-help":
|
||||
Console.Write(nl);
|
||||
Console.Write(msg);
|
||||
return;
|
||||
case "-h":
|
||||
Console.Write(nl);
|
||||
Console.Write(msg);
|
||||
return;
|
||||
case @"\?":
|
||||
Console.Write(nl);
|
||||
Console.Write(msg);
|
||||
return;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
Console.Write(nl);
|
||||
Console.Write(sdt);
|
||||
Console.Write(scs);
|
||||
Console.Write(nl);
|
||||
Console.Write(ddt);
|
||||
Console.Write(dcs);
|
||||
Console.Write(nl);
|
||||
Console.Write(sq);
|
||||
Console.Write(nl);
|
||||
Console.Write(dt);
|
||||
|
||||
//return;
|
||||
|
||||
//-------------------------------------------establish connections-------------------------------------------------
|
||||
|
||||
//setup source
|
||||
switch (sdt){
|
||||
case "odbc":
|
||||
try {
|
||||
s_odbc.ConnectionString = scs;
|
||||
}
|
||||
catch (Exception e) {
|
||||
Console.Write(nl + "bad source connection string: " + e.Message);
|
||||
return;
|
||||
}
|
||||
sc = s_odbc;
|
||||
return;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
s_odbc.ConnectionString = scs;
|
||||
sc = s_odbc;
|
||||
|
||||
//setup destination
|
||||
switch (ddt) {
|
||||
case "npgsql":
|
||||
try {
|
||||
d_npgsql.ConnectionString = dcs;
|
||||
}
|
||||
catch (Exception e) {
|
||||
Console.Write(nl + "bad source connection string: " + e.Message);
|
||||
return;
|
||||
}
|
||||
dc = d_npgsql;
|
||||
return;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
d_npgsql.ConnectionString = dcs;
|
||||
dc = d_npgsql;
|
||||
|
||||
/*
|
||||
//polymorph open
|
||||
try {
|
||||
sc.Open();
|
||||
}
|
||||
catch (Exception e) {
|
||||
Console.Write(nl + "issue connection to source: " + e.Message);
|
||||
return;
|
||||
}
|
||||
|
||||
try {
|
||||
dc.Open();
|
||||
}
|
||||
catch (Exception e) {
|
||||
sc.Close();
|
||||
Console.Write(nl + "issue connecting to destination: "+ e.Message);
|
||||
}
|
||||
|
||||
|
||||
|
||||
//----------------------------------------------setup commands---------------------------------------------------
|
||||
|
||||
var s_cmd = new System.Data.Odbc.OdbcCommand();
|
||||
var pgcom = d_npgsql.CreateCommand();
|
||||
|
||||
//---------------------------------------------begin transaction---------------------------------------------------------
|
||||
|
||||
Console.Write(nl);
|
||||
Console.Write("etl start:" + DateTime.Now.ToString());
|
||||
|
||||
/*
|
||||
NpgsqlTransaction pgt = pgc.BeginTransaction();
|
||||
s_odbcommandTimeout = 6000;
|
||||
s_odbcommandTimeout = 6000;
|
||||
system.Data.Odbc.OdbcDataReader ibmdr;
|
||||
try {
|
||||
ibmdr = s_odbcxecuteReader();
|
||||
ibmdr = s_odbcxecuteReader();
|
||||
}
|
||||
catch (Exception e) {
|
||||
Console.Write(nl);
|
||||
Console.Write("error on source sql:");
|
||||
Console.Write(nl);
|
||||
Console.Write(e.Message);
|
||||
s_odbcse();
|
||||
s_odbcse();
|
||||
pgc.Cldse();
|
||||
return;
|
||||
}
|
||||
//setup getv object array dimensioned to number of columns for scenario
|
||||
//getv hold an array of datareader row
|
||||
var getv = new object[ibmdr.FieldCount];
|
||||
int cols = ibmdr.FieldCount;
|
||||
//dtn holds list of data types per column
|
||||
var dtn = new string[ibmdr.FieldCount];
|
||||
while (ibmdr.Read()) {
|
||||
r = r + 1;
|
||||
t = t +1 ;
|
||||
nr = "";
|
||||
//populate all the data type names into a string array instead of calling against ibmdr in every iteration
|
||||
if (t == 1 ) {
|
||||
for (int i = 0; i < cols; i++){
|
||||
dtn[i] = ibmdr.GetDataTypeName(i);
|
||||
}
|
||||
}
|
||||
for (int i = 0 ; i < cols;i++) {
|
||||
//Console.Write(nl);
|
||||
//Console.Write(DBNull.Value.Equals(ibmdr.GetValue(i)).ToString());
|
||||
//Console.Write(ibmdr.GetValue(i).ToString());
|
||||
Boolean dnull = false;
|
||||
if (dtn[i] == "BIGINT") {
|
||||
dnull = DBNull.Value.Equals(ibmdr.GetInt64(i));
|
||||
}
|
||||
else {
|
||||
dnull = DBNull.Value.Equals(ibmdr.GetValue(i));
|
||||
}
|
||||
if (! dnull) {
|
||||
switch (dtn[i]){
|
||||
case "VARCHAR":
|
||||
if (trim) {
|
||||
nc = "'" + ibmdr.GetValue(i).ToString().Replace("'","''").TrimEnd() + "'";
|
||||
}
|
||||
else {
|
||||
nc = "'" + ibmdr.GetValue(i).ToString().Replace("'","''") + "'";
|
||||
}
|
||||
break;
|
||||
case "CHAR":
|
||||
if (trim) {
|
||||
nc = "'" + ibmdr.GetValue(i).ToString().Replace("'","''").TrimEnd() + "'";
|
||||
}
|
||||
else {
|
||||
nc = "'" + ibmdr.GetValue(i).ToString().Replace("'","''") + "'";
|
||||
}
|
||||
break;
|
||||
case "DATE":
|
||||
if (ibmdr.GetValue(i).ToString() == "1/1/0001 12:00:00 AM" || ibmdr.GetValue(i).ToString() == "") {
|
||||
nc = "NULL";
|
||||
}
|
||||
else {
|
||||
nc = "'" + ibmdr.GetValue(i).ToString() + "'";
|
||||
}
|
||||
break;
|
||||
case "TIME":
|
||||
nc = "'" + ibmdr.GetValue(i).ToString() + "'";
|
||||
break;
|
||||
case "TIMESTAMP":
|
||||
nc = "'" + ibmdr.GetDateTime(i).ToString() + "'";
|
||||
break;
|
||||
case "BIGINT":
|
||||
nc = ibmdr.GetInt64(i).ToString();
|
||||
break;
|
||||
default:
|
||||
if (ibmdr.GetValue(i).ToString() != "") {
|
||||
nc = ibmdr.GetValue(i).ToString();
|
||||
}
|
||||
else {
|
||||
nc = "NULL";
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
else {
|
||||
nc = "NULL";
|
||||
}
|
||||
if (i!=0) {
|
||||
nr = nr + ",";
|
||||
}
|
||||
nr = nr + nc;
|
||||
}
|
||||
if (sql!="") {
|
||||
sql = sql + ",";
|
||||
}
|
||||
sql = sql + "(" + nr + ")";
|
||||
if (r == 250) {
|
||||
r = 0;
|
||||
sql = dt + sql;
|
||||
pgcom.CommandText = sql;
|
||||
try {
|
||||
pgcom.ExecuteNonQuery();
|
||||
}
|
||||
catch (Exception e) {
|
||||
Console.Write(nl);
|
||||
Console.Write(e.Message);
|
||||
System.IO.File.WriteAllText(@"C:\Users\ptrowbridge\Downloads\runner_error.sql",sql);
|
||||
s_odbcse();
|
||||
s_odbcse();
|
||||
pgt.Rollbdck();
|
||||
pgc.Close();
|
||||
return;
|
||||
}
|
||||
sql = "";
|
||||
Console.Write(nl + t.ToString());
|
||||
}
|
||||
}
|
||||
if (r != 0) {
|
||||
sql = dt + sql;
|
||||
pgcom.CommandText = sql;
|
||||
try {
|
||||
pgcom.ExecuteNonQuery();
|
||||
}
|
||||
catch (Exception e) {
|
||||
Console.Write(nl);
|
||||
Console.Write(e.Message);
|
||||
System.IO.File.WriteAllText(@"C:\Users\ptrowbridge\Downloads\runner_error.sql",sql);
|
||||
//s_odbcse();
|
||||
//s_odbcse();
|
||||
pgt.Rodlback();
|
||||
pgc.Close();
|
||||
return;
|
||||
}
|
||||
sql = "";
|
||||
Console.Write(nl + t.ToString());
|
||||
}
|
||||
|
||||
pgt.Commit();
|
||||
s_odbcse();
|
||||
s_odbcse();
|
||||
pgc.Cldse();
|
||||
|
||||
Console.Write(nl);
|
||||
Console.Write("etl end:" + DateTime.Now.ToString());
|
||||
*/
|
||||
}
|
||||
}
|
||||
}
|
||||
using System;
|
||||
using Npgsql;
|
||||
|
||||
namespace test
|
||||
{
|
||||
class Program
|
||||
{
|
||||
private
|
||||
|
||||
static void Main(string[] args)
|
||||
{
|
||||
|
||||
string scs = "";
|
||||
string dcs = "";
|
||||
string sdt = "";
|
||||
string ddt = "";
|
||||
string sq = "";
|
||||
string dt = "";
|
||||
Boolean trim = false;
|
||||
int r = 0;
|
||||
int t = 0;
|
||||
string sql = "";
|
||||
string nr = "";
|
||||
string nc = "";
|
||||
string nl = Environment.NewLine;
|
||||
//declaring these objects globally will asume these libraries exist, they may not
|
||||
System.Data.Odbc.OdbcConnection s_odbc = new System.Data.Odbc.OdbcConnection();
|
||||
System.Data.Odbc.OdbcConnection d_odbc = new System.Data.Odbc.OdbcConnection();
|
||||
NpgsqlConnection s_npgsql = new NpgsqlConnection();
|
||||
NpgsqlConnection d_npgsql = new NpgsqlConnection();
|
||||
System.Data.Common.DbConnection sc; //source connection
|
||||
System.Data.Common.DbConnection dc; //destination connection
|
||||
|
||||
string msg = "Help:";
|
||||
msg = msg + nl + "version 0.25";
|
||||
msg = msg + nl;
|
||||
msg = msg + nl + "options:";
|
||||
msg = msg + nl + "-sdt sourc driver type";
|
||||
msg = msg + nl + "-scs source connection string";
|
||||
msg = msg + nl + "-ddt destination driver type";
|
||||
msg = msg + nl + "-dcs destination connection string";
|
||||
msg = msg + nl + "-sq path to source query";
|
||||
msg = msg + nl + "-dt fully qualified name of destination table";
|
||||
msg = msg + nl + "-t trim text";
|
||||
msg = msg + nl + "--help info";
|
||||
msg = msg + nl;
|
||||
msg = msg + nl + "available driver types:";
|
||||
msg = msg + nl + "-------------------------";
|
||||
msg = msg + nl + "* odbc";
|
||||
msg = msg + nl + "* npgsql";
|
||||
|
||||
|
||||
//---------------------------------------parse args into variables-------------------------------------------------
|
||||
|
||||
for (int i = 0; i < args.Length; i = i +1 ){
|
||||
switch (args[i]) {
|
||||
//sourc driver type
|
||||
case "-sdt":
|
||||
sdt = args[i+1];
|
||||
break;
|
||||
//source connection string
|
||||
case "-scs":
|
||||
scs = args[i+1];
|
||||
break;
|
||||
//destination driver type
|
||||
case "-ddt":
|
||||
ddt = args[i+1];
|
||||
break;
|
||||
//destination connection string
|
||||
case "-dcs":
|
||||
dcs = args[i+1];
|
||||
break;
|
||||
//source query path
|
||||
case "-sq":
|
||||
try {
|
||||
sq = System.IO.File.ReadAllText(args[i+1]);
|
||||
}
|
||||
catch (Exception e) {
|
||||
Console.Write(nl + "error reasing source sql file: " + e.Message);
|
||||
return;
|
||||
}
|
||||
break;
|
||||
//destination table name
|
||||
case "-dt":
|
||||
dt = "INSERT INTO " + args[i+1] + " VALUES ";
|
||||
break;
|
||||
case "-t":
|
||||
trim = true;
|
||||
break;
|
||||
case "--help":
|
||||
Console.Write(nl);
|
||||
Console.Write(msg);
|
||||
return;
|
||||
case "-help":
|
||||
Console.Write(nl);
|
||||
Console.Write(msg);
|
||||
return;
|
||||
case "-h":
|
||||
Console.Write(nl);
|
||||
Console.Write(msg);
|
||||
return;
|
||||
case @"\?":
|
||||
Console.Write(nl);
|
||||
Console.Write(msg);
|
||||
return;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
Console.Write(nl);
|
||||
Console.Write(sdt);
|
||||
Console.Write(scs);
|
||||
Console.Write(nl);
|
||||
Console.Write(ddt);
|
||||
Console.Write(dcs);
|
||||
Console.Write(nl);
|
||||
Console.Write(sq);
|
||||
Console.Write(nl);
|
||||
Console.Write(dt);
|
||||
|
||||
//return;
|
||||
|
||||
//-------------------------------------------establish connections-------------------------------------------------
|
||||
|
||||
//setup source
|
||||
switch (sdt){
|
||||
case "odbc":
|
||||
try {
|
||||
s_odbc.ConnectionString = scs;
|
||||
}
|
||||
catch (Exception e) {
|
||||
Console.Write(nl + "bad source connection string: " + e.Message);
|
||||
return;
|
||||
}
|
||||
sc = s_odbc;
|
||||
return;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
s_odbc.ConnectionString = scs;
|
||||
sc = s_odbc;
|
||||
|
||||
//setup destination
|
||||
switch (ddt) {
|
||||
case "npgsql":
|
||||
try {
|
||||
d_npgsql.ConnectionString = dcs;
|
||||
}
|
||||
catch (Exception e) {
|
||||
Console.Write(nl + "bad source connection string: " + e.Message);
|
||||
return;
|
||||
}
|
||||
dc = d_npgsql;
|
||||
return;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
d_npgsql.ConnectionString = dcs;
|
||||
dc = d_npgsql;
|
||||
|
||||
/*
|
||||
//polymorph open
|
||||
try {
|
||||
sc.Open();
|
||||
}
|
||||
catch (Exception e) {
|
||||
Console.Write(nl + "issue connection to source: " + e.Message);
|
||||
return;
|
||||
}
|
||||
|
||||
try {
|
||||
dc.Open();
|
||||
}
|
||||
catch (Exception e) {
|
||||
sc.Close();
|
||||
Console.Write(nl + "issue connecting to destination: "+ e.Message);
|
||||
}
|
||||
|
||||
|
||||
|
||||
//----------------------------------------------setup commands---------------------------------------------------
|
||||
|
||||
var s_cmd = new System.Data.Odbc.OdbcCommand();
|
||||
var pgcom = d_npgsql.CreateCommand();
|
||||
|
||||
//---------------------------------------------begin transaction---------------------------------------------------------
|
||||
|
||||
Console.Write(nl);
|
||||
Console.Write("etl start:" + DateTime.Now.ToString());
|
||||
|
||||
/*
|
||||
NpgsqlTransaction pgt = pgc.BeginTransaction();
|
||||
s_odbcommandTimeout = 6000;
|
||||
s_odbcommandTimeout = 6000;
|
||||
system.Data.Odbc.OdbcDataReader ibmdr;
|
||||
try {
|
||||
ibmdr = s_odbcxecuteReader();
|
||||
ibmdr = s_odbcxecuteReader();
|
||||
}
|
||||
catch (Exception e) {
|
||||
Console.Write(nl);
|
||||
Console.Write("error on source sql:");
|
||||
Console.Write(nl);
|
||||
Console.Write(e.Message);
|
||||
s_odbcse();
|
||||
s_odbcse();
|
||||
pgc.Cldse();
|
||||
return;
|
||||
}
|
||||
//setup getv object array dimensioned to number of columns for scenario
|
||||
//getv hold an array of datareader row
|
||||
var getv = new object[ibmdr.FieldCount];
|
||||
int cols = ibmdr.FieldCount;
|
||||
//dtn holds list of data types per column
|
||||
var dtn = new string[ibmdr.FieldCount];
|
||||
while (ibmdr.Read()) {
|
||||
r = r + 1;
|
||||
t = t +1 ;
|
||||
nr = "";
|
||||
//populate all the data type names into a string array instead of calling against ibmdr in every iteration
|
||||
if (t == 1 ) {
|
||||
for (int i = 0; i < cols; i++){
|
||||
dtn[i] = ibmdr.GetDataTypeName(i);
|
||||
}
|
||||
}
|
||||
for (int i = 0 ; i < cols;i++) {
|
||||
//Console.Write(nl);
|
||||
//Console.Write(DBNull.Value.Equals(ibmdr.GetValue(i)).ToString());
|
||||
//Console.Write(ibmdr.GetValue(i).ToString());
|
||||
Boolean dnull = false;
|
||||
if (dtn[i] == "BIGINT") {
|
||||
dnull = DBNull.Value.Equals(ibmdr.GetInt64(i));
|
||||
}
|
||||
else {
|
||||
dnull = DBNull.Value.Equals(ibmdr.GetValue(i));
|
||||
}
|
||||
if (! dnull) {
|
||||
switch (dtn[i]){
|
||||
case "VARCHAR":
|
||||
if (trim) {
|
||||
nc = "'" + ibmdr.GetValue(i).ToString().Replace("'","''").TrimEnd() + "'";
|
||||
}
|
||||
else {
|
||||
nc = "'" + ibmdr.GetValue(i).ToString().Replace("'","''") + "'";
|
||||
}
|
||||
break;
|
||||
case "CHAR":
|
||||
if (trim) {
|
||||
nc = "'" + ibmdr.GetValue(i).ToString().Replace("'","''").TrimEnd() + "'";
|
||||
}
|
||||
else {
|
||||
nc = "'" + ibmdr.GetValue(i).ToString().Replace("'","''") + "'";
|
||||
}
|
||||
break;
|
||||
case "DATE":
|
||||
if (ibmdr.GetValue(i).ToString() == "1/1/0001 12:00:00 AM" || ibmdr.GetValue(i).ToString() == "") {
|
||||
nc = "NULL";
|
||||
}
|
||||
else {
|
||||
nc = "'" + ibmdr.GetValue(i).ToString() + "'";
|
||||
}
|
||||
break;
|
||||
case "TIME":
|
||||
nc = "'" + ibmdr.GetValue(i).ToString() + "'";
|
||||
break;
|
||||
case "TIMESTAMP":
|
||||
nc = "'" + ibmdr.GetDateTime(i).ToString() + "'";
|
||||
break;
|
||||
case "BIGINT":
|
||||
nc = ibmdr.GetInt64(i).ToString();
|
||||
break;
|
||||
default:
|
||||
if (ibmdr.GetValue(i).ToString() != "") {
|
||||
nc = ibmdr.GetValue(i).ToString();
|
||||
}
|
||||
else {
|
||||
nc = "NULL";
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
else {
|
||||
nc = "NULL";
|
||||
}
|
||||
if (i!=0) {
|
||||
nr = nr + ",";
|
||||
}
|
||||
nr = nr + nc;
|
||||
}
|
||||
if (sql!="") {
|
||||
sql = sql + ",";
|
||||
}
|
||||
sql = sql + "(" + nr + ")";
|
||||
if (r == 250) {
|
||||
r = 0;
|
||||
sql = dt + sql;
|
||||
pgcom.CommandText = sql;
|
||||
try {
|
||||
pgcom.ExecuteNonQuery();
|
||||
}
|
||||
catch (Exception e) {
|
||||
Console.Write(nl);
|
||||
Console.Write(e.Message);
|
||||
System.IO.File.WriteAllText(@"C:\Users\ptrowbridge\Downloads\runner_error.sql",sql);
|
||||
s_odbcse();
|
||||
s_odbcse();
|
||||
pgt.Rollbdck();
|
||||
pgc.Close();
|
||||
return;
|
||||
}
|
||||
sql = "";
|
||||
Console.Write(nl + t.ToString());
|
||||
}
|
||||
}
|
||||
if (r != 0) {
|
||||
sql = dt + sql;
|
||||
pgcom.CommandText = sql;
|
||||
try {
|
||||
pgcom.ExecuteNonQuery();
|
||||
}
|
||||
catch (Exception e) {
|
||||
Console.Write(nl);
|
||||
Console.Write(e.Message);
|
||||
System.IO.File.WriteAllText(@"C:\Users\ptrowbridge\Downloads\runner_error.sql",sql);
|
||||
//s_odbcse();
|
||||
//s_odbcse();
|
||||
pgt.Rodlback();
|
||||
pgc.Close();
|
||||
return;
|
||||
}
|
||||
sql = "";
|
||||
Console.Write(nl + t.ToString());
|
||||
}
|
||||
|
||||
pgt.Commit();
|
||||
s_odbcse();
|
||||
s_odbcse();
|
||||
pgc.Cldse();
|
||||
|
||||
Console.Write(nl);
|
||||
Console.Write("etl end:" + DateTime.Now.ToString());
|
||||
*/
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1,17 +1,17 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<OutputType>Exe</OutputType>
|
||||
<TargetFramework>netcoreapp2.1</TargetFramework>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Npgsql" Version="4.0.0" />
|
||||
<PackageReference Include="System.Data.Odbc" Version="4.5.0" />
|
||||
</ItemGroup>
|
||||
|
||||
<PropertyGroup>
|
||||
<RuntimeIdentifiers>win10-x64;ubuntu.16.04-x64</RuntimeIdentifiers>
|
||||
</PropertyGroup>
|
||||
|
||||
</Project>
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<OutputType>Exe</OutputType>
|
||||
<TargetFramework>netcoreapp2.1</TargetFramework>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Npgsql" Version="4.0.0" />
|
||||
<PackageReference Include="System.Data.Odbc" Version="4.5.0" />
|
||||
</ItemGroup>
|
||||
|
||||
<PropertyGroup>
|
||||
<RuntimeIdentifiers>win10-x64;ubuntu.16.04-x64</RuntimeIdentifiers>
|
||||
</PropertyGroup>
|
||||
|
||||
</Project>
|
||||
|
Loading…
Reference in New Issue
Block a user