Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people, just like you, are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
Solved

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

Posted on 2009-07-10
2
1,255 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

PRTG Network Monitor: Intuitive Network Monitoring

Network Monitoring is essential to ensure that computer systems and network devices are running. Use PRTG to monitor LANs, servers, websites, applications and devices, bandwidth, virtual environments, remote systems, IoT, and many more. PRTG is easy to set up & use.

Question has a verified solution.

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

Suggested Solutions

Entering a date in Microsoft Access can be tricky. A typo can cause month and day to be shuffled, entering the day only causes an error, as does entering, say, day 31 in June. This article shows how an inputmask supported by code can help the user a…
Today, the web development industry is booming, and many people consider it to be their vocation. The question you may be asking yourself is – how do I become a web developer?
An introduction to basic programming syntax in Java by creating a simple program. Viewers can follow the tutorial as they create their first class in Java. Definitions and explanations about each element are given to help prepare viewers for future …
In this seventh video of the Xpdf series, we discuss and demonstrate the PDFfonts utility, which lists all the fonts used in a PDF file. It does this via a command line interface, making it suitable for use in programs, scripts, batch files — any pl…

808 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