verbinden DB2 en SQL

Status
Niet open voor verdere reacties.

EdjeCageman

Gebruiker
Lid geworden
24 okt 2011
Berichten
273
Beste Mensen,

Er draaien hier 2 verschillende databases, een DB2 database en een SQL server.
Nu heb ik deze in 2 verschillende solutions draaien. Dus gewoon simpel:

Code:
public class Database
{
SqlConnection con;
SqlCommand cmd;

//Etc....
}

Code:
public class Database
{
IDB2Cibbection con;
IDB2Command cmd;

//Etc...
}

Voor de rest zijn de klasses identiek, het enigste wat anders is is deze connectiesettings, de input voor de connectie die de user kan geven en een ander soort XML bestand wordt er gemaakt.
Nu vraag ik me af, is hiervoor een deftigere manier om dit te maken dan 2 losse modules?
 
Heeft de IDB2Command de interface IDBCommand (zonder de 2) als base? Dan kun je deze als parameter invoeren.
 
Haat aan overerving :P heb het altijd vermeden, maar zie nu langzaam aan het nut er wel van in...

De classe van IDB2Command:

Code:
public sealed class iDB2Command : DbCommand, ICloneable

Als ik je antwoord snap, ja.
Met het 2de gedeelte van je antwoord moet je me toch even helpen, want ik snap niet echt hoe je het bedoeld.

Iig al tnx voor je antwoord:)
 
(code == voorbeeld!)

Een class voor je database stuff, eventueel connection in constructor doorgeven en open/close methods toevoegen etc. gaat om het idee.

[CPP]public class YourDatabase
{
public int InsertCustomer(IDbConnection connection, IDbCommand command, Customer customer)
{
connection.Open();

command.CommandText = "INSERT INTO Customers (Name) VALUES @Name";

var param = command.CreateParameter();
param.ParameterName = "@Name";
param.Value = customer.Name;

command.Parameters.Add(param);

var count = command.ExecuteNonQuery();

connection.Close();

return count;
}
}[/CPP]


En dan zoiets in je projecten, db gebruiken welke nodig is:
[CPP]var db = new YourDatabase();

//in Sql solution
db.InsertCustomer(new SqlConnection("SqlConnectionString"), new SqlCommand(), new Customer("Bob"));

//in OleDb solution
db.InsertCustomer(new OleDbConnection("OleDbConnectionString"), new OleDbCommand(), new Customer("Bob"));

//in Db2 solution
db.InsertCustomer(new Db2Connection("Db2ConnectionString"), new Db2Command(), new Customer("Bob"));
[/CPP]


Inheritance is te machtig om links te laten liggen :P Vooral om dubbele code weg te werken.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan