Jump to content

Acesso a BD (MySQL, Access,SQL Server 2000/2005) simplificado


inginheiiro

Recommended Posts

boas.

A pedido de alguns elementos desenvolvi uma pequena API em .NET 1.1 para simplificar a conexão a BD mysql, access ou Sql Server 2000/2005.

a API encontra-se disponivel através do link http://bragatel.pt/coredump/EasyDb.zip.

Pode ser usada por todos aqueles que usarem C#,VB.NEt, Python.NET, Java.net, perl.net.

Como conectar a uma BD Sql Server.

DBWrapper c = new DBWrapper(EasyDb.DatabaseType.MSSQL);
c.DBServer="10.0.2.32\\Instancia-1";
c.DBUser="sa";			
c.DBPassword="";
c.Connect("bdsophis");

Como conectar a uma BD access

DBWrapper c = new DBWrapper(EasyDb.DatabaseType.Access);
c.DBUser="Admin";			
c.Connect(@"c:\temp\Northwind.mdb");

Como conectar a uma BD Mysql

DBWrapper c = new DBWrapper(EasyDb.DatabaseType.Mysql);
c.DBServer="10.0.2.32";
c.DBUser="root";			
c.DBPassword="mypwd";
c.Connect("o-comerce");

Como Executar scripts em massa em Mysql, e retornar os dados todos num DataSet

DataSet ds =null;
try{
  DataSet ds = c.dbExec_n_Queries("select * from customers; select * from users;");
}
catch(Exception e){
Console.WriteLine(e.StackTrace);
ds=null;
}

Como Executar scripts em massa em Access/Sql Server, e retornar os dados todos num DataSet

DataSet ds =null;
try{
  DataSet ds = c.dbExec_n_Queries("select * from customers; go  select * from users;");
}
catch(Exception e){
Console.WriteLine(e.StackTrace);
ds=null;
}

Como Executar uma query (Mysql,Access,Sql Server) e retornar os dados num objecto

DBResult dbr = c.dbExecQuery("select * from employees");		
DBRow _row = null;			
while ((_row = dbr.FetchAsArray())!=null)						
Console.WriteLine("Nome: " + _row["firstName"]+ " Apelido "+ _row["lastName"]);}

Como fazer um Insert numa tabela (Mysql,Access,Sql Server)

DBRow R = new DBRow() ;
R["employeeId"]=3;
R["firstname"]="Jaimao";
R["lastname"]="Da Silva";
R["title"]="mr";
R["emailname"]="a@a.com";
c.dbInsert("employees",R);

Como executar um Stored Procedure (Mysql,Access,Sql Server)

using(DBWrapper cc = new DBWrapper(EasyDb.DatabaseType.MSSQL)){
cc.DBServer="10.0.2.32\\sql2000";
cc.DBUser="sa";			
cc.DBPassword="";
cc.Connect("bdinfra");
try{					
  DBRow _r = new DBRow() ;
_r["chave"]="111111111";
_r["data"]="2006-10-02";
_r["anolectivo"]="2006";
_r["cddoc"]="1352";					
DBResult dbxr =cc.dbStoredProcedure("getAulas",null,_r,null);
DBRow _row2 = null;			
while ((_row2 = dbxr.FetchAsArray())!=null)						
   Console.WriteLine("Datas: " + _row2["Resultados"]);	
}
catch(Exception e){
Console.WriteLine(e.StackTrace);
}
}

As classes implementam o IDisposable que fecham as conexões à BD quando se destroi o objecto DBWrapper.

Isto não invalida o uso do Close no objecto 😉 (Good Practice).

Existe ainda a Possibilidade de obter o object da conexão à BD, para trabalhar sem o wrapper.

MySqlConnection x=c.GetMysqlConnectionObject();    // Mysql

SqlConnection x=c.GetMSSQLConnectionObject();      // Sql Server

OleDbConnection x=c.GetAccessConnectionObject();  // Access

Espero que seja util .

/Ing

I used to have a life ... but i bought a programmable machine in 1982 ...

Link to comment
Share on other sites

  • 2 months later...
  • 4 weeks later...

Óptimo trabalho!!  Deu muito jeito para usar com o MySql 😄

E já agora uma pequena dúvida:

Se apenas precisar de interagir com o MySql basta usar o Mysql.Data.dll ?

tanks.

o Mysql.Data.Dll é o "driver odbc" para mysql http://dev.mysql.com/downloads/connector/net/1.0.html, podes usa-lo se quiseres apenas ligar a mysql. a api é 95% igual à dos outros drivers odbc da framework.

Só referenciando essa dll não podes usar o wrapper feito por mim. apenas isso.

E quando se adiciona às referências, o MySql.Data.xml fica referenciado automaticamente?

yep.

I used to have a life ... but i bought a programmable machine in 1982 ...

Link to comment
Share on other sites

  • 4 weeks later...

Tomei a liberdade de pedir ao inginheiiro para estender a funcionalidade desta API e assim adicionei-lhe a compatibilidade com Firebird.

(E porquê Firebird? Bom, porque precisei de uma base de dados embebida num programa e achei esta uma boa escolha, claro que há mais, mas esta foi a que me agradou mais.)

Quem quiser pode fazer o download da nova versão do EasyDB pode fazê-lo aqui.

Se quiserem usar uma base de dados embebida devem fazer o download do Firebird Embed Server aqui.

Como conectar a uma BD FireBird

DBWrapper c = new DBWrapper(EasyDb.DatabaseType.FireBird);
c.DBUser = "SYSDBA";
c.DBPassword = "masterkey";     
c.DBServerType = FbServerType.Embedded; // apenas necessario para conectar a uma base de dados embebida...       
c.Connect(@"C:\teste.fdb");

De resto é tudo igual a MySql.

Todos os créditos vão para o inginheiiro.

Link to comment
Share on other sites

  • 2 weeks later...
  • 6 months later...

A conexão (Conection string) a BD Access não suporta (Workgroup system database with password). Nunca necessitei disso logo não implementei.

Workgroup system database with password é quando tens um ficheiro *.mdw que é responsavel pela autenticação.

podes (Não testei) contornar essa situação da seguinte forma:

DBWrapper c = new DBWrapper(EasyDb.DatabaseType.Access);
c.DBUser="Admin";         
c.DBPassword="xxx";
c.Connect(@"c:\temp\Northwind.mdb;Jet OLEDB:System Database=c:\temp\Northwind.mdw");

/ing

I used to have a life ... but i bought a programmable machine in 1982 ...

Link to comment
Share on other sites

  • 3 weeks later...

boas ricardo.

tenta o seguinte:

DBWrapper c = new DBWrapper(EasyDb.DatabaseType.Access);
c.DBUser = "Admin";               
c.Connect(@"A_MINHA_BD.mdb;Jet OLEDB:Database Password=portugal;");

sendo que a password para a tua BD é a palavra portugal.

/Ing

I used to have a life ... but i bought a programmable machine in 1982 ...

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.