Baia Posted November 13, 2009 at 10:39 PM Report Share #296085 Posted November 13, 2009 at 10:39 PM Ola a todos. Eu estou a aprender a programar em VB.NET e tenho uma duvida. Estou a fazer um projecto que faz ligações a uma base de dados mysql. Já tenho a conexão a funcionar e a fazer tudo direitinho só que tenho que fazer sempre a conexao em cada vez que quero executar uma query para a bd. O que eu queria era fazer a conexão numa classe e depois era só chamá-la, será que alguem me poderia ajudar? Aqui está o codigo que tenho a funcionar. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim conexao As OdbcConnection Dim dr As OdbcDataReader Dim sql As String = "create database teste" Dim strsql As String strsql = "Driver={MySQL ODBC 3.51 Driver};Server=localhost;uid=root;pwd=;" conexao = New OdbcConnection(strsql) conexao.Open() Dim cmd As OdbcCommand = New OdbcCommand(sql, conexao) Try dr = cmd.ExecuteReader() Catch ex As Exception MsgBox(ex, MsgBoxStyle.Information) End Try conexao.Close() conexao = Nothing End Sub Obrgigado a todos. Link to comment Share on other sites More sharing options...
M6 Posted November 13, 2009 at 10:49 PM Report Share #296089 Posted November 13, 2009 at 10:49 PM Podes usar uma classe com métodos tipo construtor connect disconnect isConnected executeSQL etc. e passas o código que tens para os métodos correspondentes. Uma classe desse tipo provavelmente faz sentido ser singleton. 10 REM Generation 48K! 20 INPUT "URL:", A$ 30 IF A$(1 TO 4) = "HTTP" THEN PRINT "400 Bad Request": GOTO 50 40 PRINT "404 Not Found" 50 PRINT "./M6 @ Portugal a Programar." Link to comment Share on other sites More sharing options...
ribeiro55 Posted November 15, 2009 at 02:44 PM Report Share #296303 Posted November 15, 2009 at 02:44 PM Perdes uns 15 minutinhos a analisar o código desta biblioteca e ficas com umas ideias de como podes fazer uma biblioteca com as tuas necessidades. Não senti grande necessidade em aplicar patterns como o singleton. Está contruída de uma forma simples, fácil de analisar. Uma pessoa está sempre a aprender, hoje já faria diferente do que tenho lá, ainda assim, um exemplo desses já te mete "on track". Sérgio Ribeiro "Great coders aren't born. They're compiled and released""Expert coders do not need a keyboard. They just throw magnets at the RAM chips" Link to comment Share on other sites More sharing options...
bruno1234 Posted November 15, 2009 at 03:28 PM Report Share #296311 Posted November 15, 2009 at 03:28 PM ribeiro55, não implementaste o singleton na tua biblioteca e na minha opinião isso está correcto. Quem utiliza a tua biblioteca é q deve decidir se usa apenas uma instancia ou não. É uma decisão que cabe ao programador. Matraquilhos para Android. Gratuito na Play Store. https://play.google.com/store/apps/details?id=pt.bca.matraquilhos Link to comment Share on other sites More sharing options...
M6 Posted November 15, 2009 at 07:53 PM Report Share #296369 Posted November 15, 2009 at 07:53 PM ribeiro55, não implementaste o singleton na tua biblioteca e na minha opinião isso está correcto. Quem utiliza a tua biblioteca é q deve decidir se usa apenas uma instancia ou não. É uma decisão que cabe ao programador. Permite-se discordar. O singleton não é uma decisão de programação mas sim de desenho, pelo que a decisão é do arquitecto, de quem desenha o sistema, e não do programador. 10 REM Generation 48K! 20 INPUT "URL:", A$ 30 IF A$(1 TO 4) = "HTTP" THEN PRINT "400 Bad Request": GOTO 50 40 PRINT "404 Not Found" 50 PRINT "./M6 @ Portugal a Programar." Link to comment Share on other sites More sharing options...
bruno1234 Posted November 15, 2009 at 09:24 PM Report Share #296386 Posted November 15, 2009 at 09:24 PM M6, tens razão ao dizer que a decisão é uma decisão de desenho. O que eu quis dizer, é que a biblioteca em si não se deve preocupar com o singleton. Isso deve ser uma preocupação de quem usa a biblioteca. Matraquilhos para Android. Gratuito na Play Store. https://play.google.com/store/apps/details?id=pt.bca.matraquilhos Link to comment Share on other sites More sharing options...
ribeiro55 Posted November 17, 2009 at 12:14 PM Report Share #296637 Posted November 17, 2009 at 12:14 PM Agora que olho melhor, se calhar fazia sentido aplicar essa pattern. Não faria se fosse uma classe como a que têm em cima pois poderia ter necessidade de utilizar outra instância para outra base de dados, ao mesmo tempo. Mas como a filosofia do DataGate é precisamente essa, se calhar fazia algum sentido. Também não há stress. A source está disponível e o singleton é uma pattern bastante fácil de implementar. A traços largos basta proteger o construtor e passar a devolver uma instância de si através de uma propriedade. @Baia Assim que tiveres novidades ou tiveres esbarrado em algum problema, estamos offtopic mas ainda estamos cá 😛 Sérgio Ribeiro "Great coders aren't born. They're compiled and released""Expert coders do not need a keyboard. They just throw magnets at the RAM chips" Link to comment Share on other sites More sharing options...
pbreda Posted November 17, 2009 at 02:05 PM Report Share #296647 Posted November 17, 2009 at 02:05 PM No meu ver devias usar MySql.Data.DLL que podes tirar da net é um bocadinho mais facil de usar....penso eu de que.... Qualquer coisa esfrega a lampada!!!Visite Banco de Software e desfrute do software disponível xD Link to comment Share on other sites More sharing options...
ribeiro55 Posted November 17, 2009 at 02:09 PM Report Share #296649 Posted November 17, 2009 at 02:09 PM O problema dele é precisamente ter que repetir aquele lixo todo por cada vez que quer consultar a base de dados. A DLL é o connector e tem de ser obviamente usado em alternativa ao driver, tal como o DataGate o usa internamente, e é por isso que ele vem atrelado. Se construír uma classe que exponha tudo o que precisa, só precisa de fazer as coisas uma vez e depois fazes consultas com tanta facilidade como Instancia.Executa("SELECT * FROM qqtabela") Sérgio Ribeiro "Great coders aren't born. They're compiled and released""Expert coders do not need a keyboard. They just throw magnets at the RAM chips" Link to comment Share on other sites More sharing options...
pbreda Posted November 19, 2009 at 08:20 AM Report Share #296853 Posted November 19, 2009 at 08:20 AM Boas, eu criei uma DLL que simplifica as funções é pena que ainda está em fase de desenvolvimento...... Qualquer coisa esfrega a lampada!!!Visite Banco de Software e desfrute do software disponível xD Link to comment Share on other sites More sharing options...
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