Solved

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

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

Migrating Your Company's PCs

To keep pace with competitors, businesses must keep employees productive, and that means providing them with the latest technology. This document provides the tips and tricks you need to help you migrate an outdated PC fleet to new desktops, laptops, and tablets.

Question has a verified solution.

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

Load balancing is the method of dividing the total amount of work performed by one computer between two or more computers. Its aim is to get more work done in the same amount of time, ensuring that all the users get served faster.
Computer science students often experience many of the same frustrations when going through their engineering courses. This article presents seven tips I found useful when completing a bachelors and masters degree in computing which I believe may he…
In this fourth video of the Xpdf series, we discuss and demonstrate the PDFinfo utility, which retrieves the contents of a PDF's Info Dictionary, as well as some other information, including the page count. We show how to isolate the page count in a…
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…

776 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