private static string GetQuery(IntPtr handlePtr, SafeBundleHandle data, string where, OperationType type) { Interop.DataControl.SafeDataControlHandle handle = new Interop.DataControl.SafeDataControlHandle(handlePtr, false); string query = null; switch (type) { case OperationType.Select: break; case OperationType.Update: query = Interop.DataControl.CreateUpdateStatement(handle, data, where); break; case OperationType.Delete: query = Interop.DataControl.CreateDeleteStatement(handle, where); break; case OperationType.Insert: query = Interop.DataControl.CreateInsertStatement(handle, data); break; default: break; } handle.Dispose(); return(query); }
internal static void UnregisterCallback(Interop.DataControl.SafeDataControlHandle handle, string providerId) { int count; if (!_reqProviderList.ContainsKey(providerId)) { Log.Error(LogTag, "The provider id is not contained : " + providerId); return; } _reqProviderList[providerId]--; count = _reqProviderList[providerId]; if (count <= 0) { _reqProviderList.Remove(providerId); _mapResponseCallbacks.Remove(providerId); Interop.DataControl.UnregisterMapResponse(handle); _mapBulkResponseCallback.Remove(providerId); Interop.DataControl.UnregisterMapBulkResponseCallback(handle); _sqlResponseCallbacks.Remove(providerId); Interop.DataControl.UnregisterSqlResponseCallback(handle); _sqlBulkResponseCallback.Remove(providerId); Interop.DataControl.UnregisterSqlBulkResponseCallback(handle); } }
private static Provider GetProvider(IntPtr handlePtr) { Interop.DataControl.SafeDataControlHandle handle = new Interop.DataControl.SafeDataControlHandle(handlePtr, false); Provider provider = null; string dataID; Interop.DataControl.DataControlGetDataId(handle, out dataID); if (dataID != null && _providerDict.ContainsKey(dataID)) { provider = _providerDict[dataID]; Log.Info(LogTag, "DataID :" + dataID + ", hash code : " + provider.GetHashCode().ToString()); } handle.Dispose(); return(provider); }
private static string CreateSelectQuery(IntPtr handlePtr, string[] columnList, int columnCount, string where, string order, int pageNum, int countPerPage) { Interop.DataControl.SafeDataControlHandle handle = new Interop.DataControl.SafeDataControlHandle(handlePtr, false); string query = "SELECT"; string dataId; if (columnList == null) { query += " * "; } else { for (int i = 0; i < columnCount; i++) { if (i != 0) { query += ","; } query += " " + columnList[i]; } } Interop.DataControl.DataControlGetDataId(handle, out dataId); query += " FROM " + dataId; if (where != null) { query += " WHERE " + where; } if (order != null) { query += " ORDER BY " + order; } if (pageNum != 0) { query += " LIMIT " + countPerPage + " OFFSET " + (countPerPage * (pageNum - 1)); } handle.Dispose(); return(query); }
internal static void UnregisterCallback(Interop.DataControl.SafeDataControlHandle handle, string providerId) { int count; _reqProviderList[providerId]--; count = _reqProviderList[providerId]; if (count <= 0) { _reqProviderList.Remove(providerId); _mapResponseCallbacks.Remove(providerId); Interop.DataControl.UnregisterMapResponse(handle); _mapBulkResponseCallback.Remove(providerId); Interop.DataControl.UnregisterMapBulkResponseCallback(handle); _sqlResponseCallbacks.Remove(providerId); Interop.DataControl.UnregisterSqlResponseCallback(handle); _sqlBulkResponseCallback.Remove(providerId); Interop.DataControl.UnregisterSqlBulkResponseCallback(handle); } }
internal static void RegisterCallback(Interop.DataControl.SafeDataControlHandle handle, string providerId) { ResultType ret; Interop.DataControl.SqlResponseCallbacks sqlCallbacks; Interop.DataControl.SqlBulkInsertResponseCallback sqlBulkCallbacks; Interop.DataControl.MapResponseCallbacks mapCallbacks; Interop.DataControl.MapBulkAddResponseCallback mapBulkCallbacks; bool sqlRegistered = false; bool mapRegistered = false; if (_reqProviderList.ContainsKey(providerId)) { _reqProviderList[providerId]++; Log.Error(LogTag, "The data control is already set"); return; } sqlCallbacks.Insert = new Interop.DataControl.SqlInsertResponseCallback(InsertResponse); sqlCallbacks.Select = new Interop.DataControl.SqlSelectResponseCallback(SelectResponse); sqlCallbacks.Update = new Interop.DataControl.SqlUpdateResponseCallback(UpdateResponse); sqlCallbacks.Delete = new Interop.DataControl.SqlDeleteResponseCallback(DeleteResponse); ret = Interop.DataControl.RegisterSqlResponseCallback(handle, ref sqlCallbacks, IntPtr.Zero); if (ret != ResultType.Success) { Log.Error(LogTag, "Registering the sql callback function is failed : " + ret); } else { _sqlResponseCallbacks.Add(providerId, sqlCallbacks); sqlRegistered = true; } sqlBulkCallbacks = new Interop.DataControl.SqlBulkInsertResponseCallback(BulkInsertResponse); ret = Interop.DataControl.RegisterSqlBulkResponseCallback(handle, sqlBulkCallbacks, IntPtr.Zero); if (ret != ResultType.Success) { Log.Error(LogTag, "Registering the sql bulk callback function is failed : " + ret); } else { _sqlBulkResponseCallback.Add(providerId, sqlBulkCallbacks); } mapCallbacks.Add = new Interop.DataControl.MapAddResponseCallback(MapAddResponse); mapCallbacks.Set = new Interop.DataControl.MapSetResponseCallback(MapSetResponse); mapCallbacks.Get = new Interop.DataControl.MapGetResponseCallback(MapGetResponse); mapCallbacks.Remove = new Interop.DataControl.MapRemoveResponseCallback(MapRemoveResponse); ret = Interop.DataControl.RegisterMapResponse(handle, ref mapCallbacks, IntPtr.Zero); if (ret != ResultType.Success) { Log.Error(LogTag, "Registering the map callback function is failed : " + ret); } else { _mapResponseCallbacks.Add(providerId, mapCallbacks); mapRegistered = true; } mapBulkCallbacks = new Interop.DataControl.MapBulkAddResponseCallback(MapBulkAddResponse); ret = Interop.DataControl.RegisterMapBulkResponseCallback(handle, mapBulkCallbacks, IntPtr.Zero); if (ret != ResultType.Success) { Log.Error(LogTag, "Registering the map bulk callback function is failed : " + ret); } else { _mapBulkResponseCallback.Add(providerId, mapBulkCallbacks); } if (!mapRegistered && !sqlRegistered) { ErrorFactory.ThrowException(ret, true, "Registering the response callback function is failed"); } _reqProviderList.Add(providerId, 1); }