Android Tutorial Connect Android to MS SQL Server Tutorial

Status
Not open for further replies.

AlexChiu

New Member
Licensed User
Longtime User
Execute me, I used socket method real time to send/receive command,and build a server process function to get ms sql data.Is it right the method?
 
Last edited by a moderator:

svk123

Member
Licensed User
Longtime User
Hello,

I am getting a java.lang.exception on running this application. I called the webserver through the browser and it is returning valid data.

Installing file.
** Activity (main) Pause, UserClosed = false **
PackageAdded: package:anywheresoftware.b4a.samples.sqlserver
** Activity (main) Create, isFirst = true **
Starting Job: Job1
** Activity (main) Resume **
** Service (httputilsservice) Create **
** Service (httputilsservice) Start **
An error occurred:
(Line: 30) End Sub
java.lang.Exception: Sub service_start signature does not match expected signature.
public static anywheresoftware.b4a.pc.RemoteObject anywheresoftware.b4a.samples.sqlserver.httputilsservice_subs_0._service_start() throws java.lang.Exception
** Activity (main) Resume **

Any help will be appreciated.
Thanks,
SVK
 

lanadmin

Member
Licensed User
Longtime User


Change Sub Service_Start to this
Sub Service_Start (StartingIntent As Intent)

That will solve the issue. May I recommend you check out this solution though. Its much more robust. Its a better method for connecting to SQL.

http://www.b4x.com/android/forum/threads/remote-database-connector-connect-to-any-remote-db.31540/
 
Last edited:

svk123

Member
Licensed User
Longtime User

Thank you very much for your help! Applying the change you suggested resolved my issue. Regarding your recommendation, I had actually tested the method that you have recommended and that is also working fine. However, I am trying to build a mobile application that will access enterprise data on the server. Please correct me if my understanding is wrong, however I felt that in RDC, if a user knew the server IP and definition of the query e.g. "select_animal", he could actually run that query on the server from any application and get access to data without any further authentication. I was thinking of passing user name and password as parameters with each query call and getting the user authenticated by my server side code before returning the result. Please advise if this is the correct approach or overkill or if there is another more efficient method. I am a new newbie when it comes to android programming.

Once again, thank you for your help.
 

lanadmin

Member
Licensed User
Longtime User


Theoretically yes. If someone knew the server that RDC was running on (a simple port scan would reveal port 17178 open) . Being that the auth is done on the server side (stored in config.properties) when RDC runs. I honestly hadn't thought about that. Id be very interested to see how you would pass the credentials from the client. That would definitely be more secure.
 

svk123

Member
Licensed User
Longtime User
I plan to pass the user name and pswd with every call (HttpUtils.PostString("Job1", ServerUrl, myString)) and return a valid result only after getting the user authenticated in asp.net. I can probably store the user name and password in a .txt on the phone or in a process variable when the user logs in initially. Hope this approach is secure!
 

Gearcam

Active Member
Licensed User
Longtime User
Can this method be used to connect to a ACCESS 2007 database stored on a local network server.

In the ASPX I guess I would need to change the
using (SqlConnection cn = newSqlConnection ......... to something pointing to the ACCESS database

Steve
 

Gearcam

Active Member
Licensed User
Longtime User
Erel

Plan B I have moved the data to a MS SQL database what's the best method to extract & update data connecting to this type of database on local network ?

Steve
 

Gearcam

Active Member
Licensed User
Longtime User
Thanks Erel I will go this way

I have downloaded the RDC on the windows server unpacked it
Also downloaded the JDBC driver from here as you suggest for the MS SQL server I have (Ver 1.3.1)

Tried to run the RunRLC.bat but get an error the system can not find the specified path.
(I have it all on my desktop in a folder)

What have I missed ?

Steve

This is the error !!

B4X:
C:\Users\Administrator.SERVER-2\Desktop\RemoteDatabaseConnector>"C:\Program F
iles (x86)\Java\jdk1.7.0\bin\java" -Xmx256m -cp .;libs\*;jdbc_driver\* anywheres
oftware.b4a.remotedatabase.RemoteServer
The system cannot find the path specified.

C:\Users\Administrator.SERVER-2\Desktop\RemoteDatabaseConnector>pause
Press any key to continue . . .

I do not have this directory
C:\Program Files (x86)\Java\jdk1.7.0
 
Last edited:

edgsistemi

Member
Licensed User
Longtime User
Hi,

I have a problem using the tutorial Android Connect to MS SQL Server Tutorial;

If I compile in release works, however, if I compile in release obfuscator does not work.

Someone had the same problem?

Thank You
 

edgsistemi

Member
Licensed User
Longtime User
Hi,

executing this code:

Generale.ServerURL = "http://xxxx..../edgcassa.aspx"
HttpUtils.CallbackActivity = "Principale"
HttpUtils.CallbackJobDoneSub = "SQLJobDone"
'
HttpUtils.PostString("Job1", Generale.ServerURL, "SELECT * FROM [Sisco Packing List PV].[dbo].[App Android]")
.
.
.
Sub SQLJobDone (Job AsString)
Dim m AsMap
Dim rows AsList
Dim parser AsJSONParser
Dim response AsString
Dim controllo AsBoolean
If HttpUtils.IsSuccess(Generale.ServerURL) Then
...
Msgbox("HttpUtils.IsSuccess","PROVA")
Else
...
Msgbox("HttpUtils.Is Not Success","PROVA")
End If

in debug and release mode works. in obfuscated mode does not work and does not display the msgbox

Thanks
 
Status
Not open for further replies.
Cookies are required to use this site. You must accept them to continue using the site. Learn more…