Go Premium for a chance to win a PS4. Enter to Win

x
?
Solved

Using .NET, Connect to simply accounting enterprise 2009 without opening simply accounting?

Posted on 2009-07-10
2
Medium Priority
?
1,294 Views
Last Modified: 2013-12-11
Hi folks,

I am having a problem trying to connect to simply accounting enterprise 2009 (SAE2K9) through vb.net without first opening SAE2K9.
I need to be able to read data from some tables in simply for the purposes of bringing that data in to a 3rd party app I am
writing.  Does anyone have some sample code out there that I could use?  I've scoured google and other search engines but to no avail
and have also sought help through the simply forums.  No one seems willing to help out?  Any takers?

Thanks in advance.
0
Comment
Question by:sharizod
  • 2
2 Comments
 
LVL 1

Accepted Solution

by:
sharizod earned 0 total points
ID: 24830398
I've figured it out.  It wasn't exactly easy or well documented, but it seems to work, all without opening simply accounting!

I hope this helps someone else the heartache and pain of trying to connect.
I am going to PAQ & refund points.

Cheers
Imports MySql.Data
Imports MySql.Data.MySqlClient
 
Public Class Form1
 
	Public Sub ConnectTo2Simply()
 
		Try
 
			Dim dbclient As New Simply.ConnectionManagerServiceClient.ConnectionManagerServiceClient
			Dim error2 As Simply.ConnectionManagerService.ConnectionManagerError
			Dim port As String = "13540"
			Dim host As String = "localhost"
			Dim sFileName As String = "C:\Documents and Settings\All Users\Documents\Simply\2009\Samdata\Enterprise\Universl.SAJ"
			Dim db_version As String = "16102"
 
			error2 = dbclient.GetConnectionInfo(sFileName, host, port)
 
			If error2 = Simply.ConnectionManagerService.ConnectionManagerError.Error_MySQL_NotRunning Then
				error2 = dbclient.StartClient("C:\Documents and Settings\All Users\Documents\Simply\2009\Samdata\Enterprise\Universl.SAI", "localhost")
				error2 = dbclient.GetConnection(sFileName, host, db_version)	'16102 is the number from the SAI file for the element "data_version"
			End If
 
			If error2 <> Simply.ConnectionManagerService.ConnectionManagerError.No_Error Then
				Throw New Exception(error2.ToString)
			End If
 
		Catch ex As Exception
			'Notify user of error thrown by connection attempt
		End Try
 
	End Sub
 
	Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
 
		ConnectTo2Simply()
 
		Try
 
			Dim f As New Library.MySqlDBAccess2.cMySqlDBAccess2
 
			Dim sConn As String = "Provider=MSDASQL;DRIVER={MySQL ODBC 3.51 Driver};SERVER=localhost;Database=simply;" & _
			"UID=sysadmin;PWD=;Port=13540;Socket=SimplyMySql13540;option=3"
 
			Dim ds As New DataSet
 
			If f.RunSQLReturnODBCDataSet(sConn, "SELECT * FROM temp;", ds) = False Then
				Throw f.LastException
			End If
 
		Catch ex As Exception
			'catch exceptions here.
 
		End Try
 
 
	End Sub
 
	Public Function RunSQLReturnODBCDataSet(ByVal connStr As String, ByVal strSQL As String, ByRef MyResults As DataSet) As Boolean
 
		Dim myCmd As Odbc.OdbcCommand = New Odbc.OdbcCommand(strSQL, New Odbc.OdbcConnection(connStr))
		Dim dsResult As DataSet
		Dim sqlDa As Odbc.OdbcDataAdapter = Nothing
 
		Try
			dsResult = New DataSet
			sqlDa = New Odbc.OdbcDataAdapter(myCmd)
 
			myCmd.CommandType = CommandType.Text
			myCmd.Connection.Open()
			sqlDa.Fill(dsResult)
 
			MyResults = dsResult
			Return True
 
		Catch ex As Exception
			LastException = ex
			Return False
 
		Finally
			myCmd.Connection.Close()
			myCmd.Connection = Nothing
			sqlDa.Dispose()
			sqlDa = Nothing
			dsResult = Nothing
 
		End Try
 
	End Function
 
End Class

Open in new window

0
 
LVL 1

Author Comment

by:sharizod
ID: 24830432
Woops.  forgot to alter the code a little.  The function "RunSQLReturnODBCDataSet" was in a class that I use to
abstract away a lot of the details of connecting to datasources and forgot take out the "f" object variable.
I wanted to show the whole code for the sake of completeness.
0

Featured Post

Get free NFR key for Veeam Availability Suite 9.5

Veeam is happy to provide a free NFR license (1 year, 2 sockets) to all certified IT Pros. The license allows for the non-production use of Veeam Availability Suite v9.5 in your home lab, without any feature limitations. It works for both VMware and Hyper-V environments

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

By, Vadim Tkachenko. In this article we’ll look at ClickHouse on its one year anniversary.
In this blog, we’ll look at how improvements to Percona XtraDB Cluster improved IST performance.
With the power of JIRA, there's an unlimited number of ways you can customize it, use it and benefit from it. With that in mind, there's bound to be things that I wasn't able to cover in this course. With this summary we'll look at some places to go…
In this video, Percona Solution Engineer Dimitri Vanoverbeke discusses why you want to use at least three nodes in a database cluster. To discuss how Percona Consulting can help with your design and architecture needs for your database and infras…

972 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question