La mejor manera de acceder a la base de datos en el servidor mediante la aplicación Android
Necesito desarrollar una aplicación que pueda tener acceso a una base de datos de SQL Server almacenada en un servidor en una oficina. Llamar al personal de escritorio remoto a un servidor de terminal y acceder a la base de datos utilizando la aplicación de escritorio para la que se ha creado la base de datos. La aplicación de escritorio accede a la base de datos con una conexión ODBC. Estoy escribiendo una aplicación de Android que permitirá una pequeña parte del acceso a esta base de datos que está disponible en la aplicación de escritorio, y estoy buscando maneras de conectar mi aplicación a esta base de datos, si está utilizando la conexión ODBC (Potencialmente usando .Net), o de alguna otra manera.
Edit: Lo siento por los que respondieron antes de terminar de explicar mi pregunta, se publicó por accidente y algunos de ustedes respondieron antes de terminar de editar.
- Unir 3 tablas en la base de datos SQLite
- Consulta de actualización SQLite Android
- Consulta los últimos mensajes SMS por contacto
- Enigma de encriptación
- Actualizar una columna como suma de otras dos columnas
- Colocación de varias tablas / columnas en un archivo CSV
- ¿Cuál es la forma correcta de hacer inserciones / actualizaciones / eliminaciones en Android SQLiteDatabase utilizando una cadena de consulta?
- Error de Android sql al usar SUM
- Cómo leer una columna específica de SQLiteBatabase existente en Android?
- CursorWindowAllocationException en el método ORMLite estándar
- El contenido de Android contentprovider lleva mucho tiempo
- ¿Cómo establecer el tipo de datos en SQLiteDatabase vinculación de consulta en bruto?
- Preguntas SQL parametrizadas en Android
Usted tiene que escribir un webservice en el lado del servidor. Puede enviar los datos como paquetes Json al dispositivo y analizar en el dispositivo los paquetes json y acceder a los datos. Sus llamadas a webservice debe ser una llamada http, por ejemplo
Http: \ server \ metnod \ get_somedata? Nombre = algo
Y el servidor debe consultar la base de datos para este parámetro y enviarle la respuesta como Json. Analizar json y obtener sus datos.
Editar: establece el tipo de contenido como "application / json" en el encabezado de respuesta del servidor. Este es un ejemplo para que el cliente envíe una solicitud de post http al servidor. Aquí jsonobjSend es el json que he construido para enviar al servidor con algunos detalles. Ex {tabla: "sometable", id: 90}. JsonobjRecv es el json que será enviado por el servidor
HttpPost httpPostRequest = new HttpPost(url); StringEntity se; se = new StringEntity(jsonObjSend.toString()); // Set HTTP parameters httpPostRequest.setEntity(se); httpPostRequest.setHeader("Authorization", usercredential); httpPostRequest.setHeader("Accept", "application/json"); httpPostRequest.setHeader("Content-type", "application/json"); httpPostRequest.setHeader("Accept-Encoding", "gzip"); // only set this parameter if you would like to use gzip compression long t = System.currentTimeMillis(); response = (HttpResponse) httpclient.execute(httpPostRequest); Log.i(TAG, "HTTPResponse received in [" + (System.currentTimeMillis()-t) + "ms]"); //Get hold of the response entity (-> the data): HttpEntity entity = response.getEntity(); if (entity != null) { // Read the content stream InputStream instream = entity.getContent(); Header contentEncoding = response.getFirstHeader("Content-Encoding"); if (contentEncoding != null && contentEncoding.getValue().equalsIgnoreCase("gzip")) { instream = new GZIPInputStream(instream); } // convert content stream to a String String resultString= convertStreamToString(instream); Log.v(null, "resultString "+resultString); instream.close(); // Transform the String into a JSONObject if(resultString!=null){ jsonObjRecv = new JSONObject(resultString); } // Raw DEBUG output of our received JSON object: Log.i(TAG,"<jsonobject>\n"+jsonObjRecv.toString()+"\n</jsonobject>"); return jsonObjRecv;
}
Crear / analizar un json check json.org
Debe crear un servidor web que será la interfaz, a continuación, puede proporcionar un servicio web para su aplicación.
Si puede modificar su aplicación de escritorio, implemente directamente el servicio http. Por lo tanto, el servicio estará disponible sólo cuando se lance su aplicación.
Como AnDro dijo que puede elegir json será el más ligero a la transferencia de los datos. Si usted elige json techno echar un vistazo a jackson .
También sugeriría una API RESTful que acepte JSON para ser publicada – y devuelve los resultados de JSON.
También puede agregar URL-reescritura, que envía URL a varios controladores.
Por ejemplo http // somehost.com / controller / action … donde puede publicar.
Esto se puede hacer en ASP.NET seguro (recién codificado algo similar en PHP).
- Cómo hacer que mi aplicación de Android aparezca en la lista compartida de otra aplicación específica
- ¿Cuál es la diferencia entre Factory y Factory2 de LayoutInflater?