inginheiiro Posted October 10, 2006 at 01:49 PM Report #56303 Posted October 10, 2006 at 01:49 PM 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 ...
Johnny Digital Posted December 21, 2006 at 04:13 AM Report #71689 Posted December 21, 2006 at 04:13 AM de certeza q me vai ser util mt fixe
Saco Posted January 19, 2007 at 12:14 AM Report #77188 Posted January 19, 2007 at 12:14 AM Ó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 ? E quando se adiciona às referências, o MySql.Data.xml fica referenciado automaticamente?
inginheiiro Posted January 19, 2007 at 08:51 AM Author Report #77233 Posted January 19, 2007 at 08:51 AM Ó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 ...
Saco Posted February 16, 2007 at 03:42 PM Report #83287 Posted February 16, 2007 at 03:42 PM 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.
inginheiiro Posted February 16, 2007 at 03:48 PM Author Report #83290 Posted February 16, 2007 at 03:48 PM Excelente trabaho "saco" 👍 Um bom exemplo de como ampliar as funcionalidades de um mini projecto. mais uma vez, bom trabalho 😛 /ing I used to have a life ... but i bought a programmable machine in 1982 ...
Weasel Posted February 28, 2007 at 03:56 PM Report #85475 Posted February 28, 2007 at 03:56 PM Podiam acrescentar para PostgreSQL que é 100% free (ao contrário do Mysql que para uso comercial é pago) Knowledge to the masses
rjcp Posted September 4, 2007 at 06:32 PM Report #130616 Posted September 4, 2007 at 06:32 PM Já agora, colocando uma password na base de dados do ficheiro xxx.mdb eu não consigo aceder aos dados usando o seguinte código: DBWrapper c = new DBWrapper(EasyDb.DatabaseType.Access); c.DBUser="Admin"; c.DBPassword="xxx"; c.Connect(@"c:\temp\Northwind.mdb"); Como posso resolver esta situação? Desde já obrigado
inginheiiro Posted September 5, 2007 at 08:22 AM Author Report #130773 Posted September 5, 2007 at 08:22 AM 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 ...
rjcp Posted September 5, 2007 at 06:17 PM Report #130960 Posted September 5, 2007 at 06:17 PM Ok obrigado, vou tentar.
rjcp Posted September 21, 2007 at 11:24 AM Report #134074 Posted September 21, 2007 at 11:24 AM Bem, não consegui colocar as passwords a funcionar como sugeriste. Há alguma possibilidade de adicionares essa opção aos ficheiros que criaste? Obrigado pela atenção Ricardo.
inginheiiro Posted September 24, 2007 at 11:20 AM Author Report #134656 Posted September 24, 2007 at 11:20 AM 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 ...
rjcp Posted September 24, 2007 at 05:25 PM Report #134719 Posted September 24, 2007 at 05:25 PM Funciona exactamente como eu queria. Uma vez mais muito obrigado. Ricardo
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now