Jump to content

Recommended Posts

Posted

precisava que me ajudem a fazer um form onde eu tenho um excerto de código sempre igual onde o que me vai mudar é uma variável que é a ligação a Base de dados.

como e q poderei fazer essa situação?

Ou seja eu tenho vários odbc's , vários nomes e o que me muda é esse odbc.

alguém me consegue dar uma ajuda??

Posted (edited)

simplesmente não tenho, pode ser um for ou um while

era só para não me tar a repetir 19 vezes o código.

só que eu vou usar 19x's o odbc alguém me consegue dar uma ajuda

Dim odbc1 As String = GetIniSetting("Odbc1", "database", strIniFile)
Dim odbc2 As String = GetIniSetting("Odbc2", "database", strIniFile)
...
Dim odbc19 As String = GetIniSetting("Odbc3", "database", strIniFile)

'Try
Dim conn As OdbcConnection
Dim connectionString As String connectionString = "DSN=" & odbc1 & ";UID=" & odbcuser & ";Pwd=" & sqlpass & ";"
conn = New OdbcConnection(connectionString)
conn.Open()
Dim cmd As New OdbcCommand
Dim reader As OdbcDataReader

' Executa o Procedimento inserido na Base de dados que é copiar as vendas para a tabela trabalhada
cmd.CommandText = "CopyTransaction"
cmd.CommandType = CommandType.StoredProcedure
cmd.Connection = conn
reader = cmd.ExecuteReader()
conn.Close()

Edited by gastao
Posted

Algo assim?

For odbcNum As Integer = 1 To 19
Dim odbc As String = GetIniSetting("Odbc" & odbcNum, "database", strIniFile)

Using conn As OdbcConnection = New OdbcConnection("DSN=" & odbc & ";UID=" & odbcuser & ";Pwd=" & sqlpass & ";")
	conn.Open()
	Dim cmd As New OdbcCommand("CopyTransaction", conn)
	cmd.CommandType = CommandType.StoredProcedure
	cmd.ExecuteNonQuery()
End Using
Next
Posted

Então, como tinhas indicado no exemplo, faz esse código, tendo como parametro o nome "odbc1" até ao "odbc19".

Ou preferes definir uma lista de nomes, algo assim?

Dim listaOdbcs As String() = {"odbc1", "odbc2", "odbc3", "odbc4"}
'
For Each nomeOdbc As String In listaOdbcs
Dim odbc As String = GetIniSetting(nomeOdbc, "database", strIniFile)

Using conn As OdbcConnection = New OdbcConnection("DSN=" & odbc & ";UID=" & odbcuser & ";Pwd=" & sqlpass & ";")
	conn.Open()
	Dim cmd As New OdbcCommand("CopyTransaction", conn)
	cmd.CommandType = CommandType.StoredProcedure
	cmd.ExecuteNonQuery()
End Using
Next
Posted

tentei fazer como fizes te no 1 que me envias te só que ele so me corre 1x não me passa para o 2º odbc vou tentar fazer desta 2a forma... a ver se passa para o 2º odbc desta forma não o csg por a correr

Posted

só mais uma pergunta imagina que uma conexão está em baixo ele para me o programa todo, eu não tenho forma que ele passe por cima se ele não se ligar?? usando tipo um try catch??'

Posted (edited)

mas a questão é que imagina ele rebenta me logo no 1º odbc ele para e não faz os próximos... eu queria é que ele continuasse a fazer, coloco o using como?' csgs dar me um exemplo?

Try
		Dim strIniFile As String = My.Application.Info.DirectoryPath & "\config.ini"
		'Le qual o caminho das Facturas escrito no Ini
		Dim odbc1 As String = GetIniSetting("Odbc1", "teste", strIniFile)
		Dim odbc2 As String = GetIniSetting("Odbc2", "teste", strIniFile)
		...
		Dim odbc19 As String = GetIniSetting("Odbc19", "teste", strIniFile)
		Dim odbcuser As String = GetIniSetting("User", "teste", strIniFile)
		Dim odbcpass As String = GetIniSetting("Password", "teste", strIniFile)
		Dim caminho1 As String = GetIniSetting("caminho1", "teste", strIniFile)
		Dim sqlpass As String = odbcpass
		sqlpass = AES_Decrypt(sqlpass, "somepassword")
		Dim listaOdbcs As String() = {"odbc1", "odbc2"}
		'
		For Each nomeOdbc As String In listaOdbcs
			Dim odbc As String = GetIniSetting(nomeOdbc, "teste", strIniFile)
			Using conn As OdbcConnection = New OdbcConnection("DSN=" & odbc & ";UID=" & odbcuser & ";Pwd=" & sqlpass & ";")
			conn.Open()
				Dim cmd As New OdbcCommand("CopyTransaction", conn)
				cmd.CommandType = CommandType.StoredProcedure
				cmd.ExecuteNonQuery()

		End Using
	Next
	Catch ex As Exception
		MsgBox(ex.Message)
	Finally
	End Try
Edited by gastao
Posted
Dim listaOdbcs As String() = {"odbc1", "odbc2", "odbc3", "odbc4"}
For Each nomeOdbc As String In listaOdbcs
       Try
           Dim odbc As String = GetIniSetting(nomeOdbc, "database", strIniFile)
           Using conn As OdbcConnection = New OdbcConnection("DSN=" & odbc & ";UID=" & odbcuser & ";Pwd=" & sqlpass & ";")
                   conn.Open()
                   Dim cmd As New OdbcCommand("CopyTransaction", conn)
                   cmd.CommandType = CommandType.StoredProcedure
                   cmd.ExecuteNonQuery()
           End Using
       Catch
       End Try
Next

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.