package com.salama.android.developer.cloud.sql; import java.io.IOException; import org.apache.http.client.ClientProtocolException; import android.util.Log; import com.salama.android.developer.SalamaAppService; import com.salama.android.support.ServiceSupportUtil; public class SalamaCloudSqlService { private final static String EASY_APP_SQL_SERVICE = "com.salama.easyapp.service.SQLService"; private static SalamaCloudSqlService _singleton = null; public static SalamaCloudSqlService singleton() { if(_singleton == null) { _singleton = new SalamaCloudSqlService(); } return _singleton; } private SalamaCloudSqlService() { } /** * 执行查询语句 * @param sql sql文 * @return 查询结果(Xml,格式如<List><TestData>...</TestData><TestData>...</TestData>......</List>) */ public String executeQuery(String sql) { try { return SalamaAppService.singleton().getWebService().doPost( SalamaAppService.singleton().getAppServiceHttpUrl(), ServiceSupportUtil.newList(new String[]{"serviceType", "serviceMethod", "sql"}), ServiceSupportUtil.newList(new String[]{EASY_APP_SQL_SERVICE, "executeQuery", sql})); } catch (ClientProtocolException e) { Log.e("SalamaCloudSqlService", "Error in executeQuery()", e); return null; } catch (IOException e) { Log.e("SalamaCloudSqlService", "Error in executeQuery()", e); return null; } } /** * 执行更新语句(update或delete) * @param sql sql文 * @return 1:成功 0:出错 */ public String executeUpdate(String sql) { try { return SalamaAppService.singleton().getWebService().doPost( SalamaAppService.singleton().getAppServiceHttpUrl(), ServiceSupportUtil.newList(new String[]{"serviceType", "serviceMethod", "sql"}), ServiceSupportUtil.newList(new String[]{EASY_APP_SQL_SERVICE, "executeUpdate", sql})); } catch (ClientProtocolException e) { Log.e("SalamaCloudSqlService", "Error in executeUpdate()", e); return null; } catch (IOException e) { Log.e("SalamaCloudSqlService", "Error in executeUpdate()", e); return null; } } /** * 插入数据 * @param dataTable 表名 * @param dataXml 数据XML * @param aclRestrictUserRead 指定拥有读权限的用户(多个用户idd逗号分割.该值未指定或空则仅仅数据创建者可以操作.'%'代表任何用户可以操作), * @param aclRestrictUserUpdate 指定拥有读权限的用户 * @param aclRestrictUserDelete 指定拥有读权限的用户 * @return 实际插入的数据XML。如果为空,则代表操作出错 */ public String insertData(String dataTable, String dataXml, String aclRestrictUserRead, String aclRestrictUserUpdate, String aclRestrictUserDelete) { try { return SalamaAppService.singleton().getWebService().doPost( SalamaAppService.singleton().getAppServiceHttpUrl(), ServiceSupportUtil.newList(new String[]{"serviceType", "serviceMethod", "dataTable", "dataXml", "aclRestrictUserRead", "aclRestrictUserUpdate", "aclRestrictUserDelete"}), ServiceSupportUtil.newList(new String[]{EASY_APP_SQL_SERVICE, "insertData", dataTable, dataXml, aclRestrictUserRead, aclRestrictUserUpdate, aclRestrictUserDelete })); } catch (ClientProtocolException e) { Log.e("SalamaCloudSqlService", "Error in insertData()", e); return null; } catch (IOException e) { Log.e("SalamaCloudSqlService", "Error in insertData()", e); return null; } } }