public System.Data.DataSet QuerySql(string sql) { using (OLEDataProvider sqlData = new OLEDataProvider()) { string connectionString; if (Table == null) { connectionString = this.ConnectionString; } else { connectionString = Table.ConnectionString; } sqlData.Connect(connectionString); return(sqlData.QuerySql(sql)); } }
public void Drop() { Debug.Assert(Table != null); string sql = string.Format("drop table {0}", Table.DBTableName); using (OLEDataProvider sqlData = new OLEDataProvider()) { string testExistSql = string.Format("select * from {0} where rownum=1", Table.DBTableName); sqlData.Connect(Table.ConnectionString); try { sqlData.QuerySql(testExistSql); sqlData.ExcuteSql(sql); } catch { } } }
public DocumentResultWhereDictionary GetDocumentResults(int end, string where, string orderby) { string sql; if (end >= 0) { if (DocIdReplaceField == null) { sql = "select docid from (select "; } else { sql = string.Format("select {0} from (select ", DocIdReplaceField); } } else { sql = "select "; } if (string.IsNullOrEmpty(where)) { if (DocIdReplaceField == null) { sql += string.Format(" docid from {0} ", Table.DBTableName); } else { sql += string.Format(" {0} from {1} ", DocIdReplaceField, Table.DBTableName); } } else { if (DocIdReplaceField == null) { sql += string.Format(" docid from {0} where {1}", Table.DBTableName, where); } else { sql += string.Format(" {0} from {1} where {2}", DocIdReplaceField, Table.DBTableName, where); } } if (!string.IsNullOrEmpty(orderby)) { sql += " order by " + orderby; } if (end >= 0) { sql += string.Format(") where rownum <= {0}", end + 1); } Core.SFQL.Parse.DocumentResultWhereDictionary result = new Core.SFQL.Parse.DocumentResultWhereDictionary(); using (OLEDataProvider sqlData = new OLEDataProvider()) { sqlData.Connect(Table.ConnectionString); foreach (System.Data.DataRow row in sqlData.QuerySql(sql).Tables[0].Rows) { int docId; if (DocIdReplaceField == null) { docId = int.Parse(row[0].ToString()); } else { docId = DBProvider.GetDocIdFromDocIdReplaceFieldValue(long.Parse(row[DocIdReplaceField].ToString())); if (docId < 0) { continue; } } result.Add(docId, new Hubble.Core.Query.DocumentResult(docId)); } System.Data.DataSet ds; if (string.IsNullOrEmpty(where)) { ds = sqlData.QuerySql(string.Format("select count(*) cnt from {0}", Table.DBTableName)); } else { ds = sqlData.QuerySql(string.Format("select count(*) cnt from {0} where {1}", Table.DBTableName, where)); } result.RelTotalCount = int.Parse(ds.Tables[0].Rows[0][0].ToString()); } return(result); }
public IList <Core.Query.DocumentResultForSort> GetDocumentResultForSortList(int end, string where, string orderby) { string sql; if (end >= 0) { if (DocIdReplaceField == null) { sql = "select docid from (select "; } else { sql = string.Format("select {0} from (select ", DocIdReplaceField); } } else { sql = "select "; } if (string.IsNullOrEmpty(where)) { if (DocIdReplaceField == null) { sql += string.Format(" docid from {0} ", Table.DBTableName); } else { sql += string.Format(" {0} from {1} ", DocIdReplaceField, Table.DBTableName); } } else { if (DocIdReplaceField == null) { sql += string.Format(" docid from {0} where {1}", Table.DBTableName, where); } else { sql += string.Format(" {0} from {1} where {2}", DocIdReplaceField, Table.DBTableName, where); } } if (!string.IsNullOrEmpty(orderby)) { sql += " order by " + orderby; } if (end >= 0) { sql += string.Format(") where rownum <= {0}", end + 1); } List <Core.Query.DocumentResultForSort> result = new List <Core.Query.DocumentResultForSort>(); using (OLEDataProvider sqlData = new OLEDataProvider()) { sqlData.Connect(Table.ConnectionString); foreach (System.Data.DataRow row in sqlData.QuerySql(sql).Tables[0].Rows) { int docId; if (DocIdReplaceField == null) { docId = int.Parse(row[0].ToString()); } else { docId = DBProvider.GetDocIdFromDocIdReplaceFieldValue(long.Parse(row[DocIdReplaceField].ToString())); if (docId < 0) { continue; } } result.Add(new Core.Query.DocumentResultForSort(docId)); } } return(result); }
public System.Data.DataTable Query(IList <Field> selectFields, IList <Hubble.Core.Query.DocumentResultForSort> docs, int begin, int end) { StringBuilder sql = new StringBuilder(); sql.Append("select "); int i = 0; foreach (Hubble.Core.Data.Field field in selectFields) { if (DocIdReplaceField != null) { if (field.Name.Equals("DocId", StringComparison.CurrentCultureIgnoreCase)) { continue; } } if (i++ == 0) { sql.AppendFormat("{0}", GetFieldName(field.Name)); } else { sql.AppendFormat(",{0}", GetFieldName(field.Name)); } } if (DocIdReplaceField != null) { sql.AppendFormat(",{0}", DocIdReplaceField); } if (DocIdReplaceField == null) { sql.AppendFormat(" from {0} where docId in (", Table.DBTableName); } else { sql.AppendFormat(" from {0} where {1} in (", Table.DBTableName, DocIdReplaceField); } i = 0; Dictionary <long, int> replaceFieldValueToDocId = null; if (DocIdReplaceField != null) { replaceFieldValueToDocId = new Dictionary <long, int>(); } for (int j = begin; j <= end; j++) { if (j >= docs.Count) { break; } int docId = docs[j].DocId; if (DocIdReplaceField == null) { if (i++ == 0) { sql.AppendFormat("{0}", docId); } else { sql.AppendFormat(",{0}", docId); } } else { long replaceFieldValue = this.DBProvider.GetDocIdReplaceFieldValue(docId); replaceFieldValueToDocId.Add(replaceFieldValue, docId); if (i++ == 0) { sql.AppendFormat("{0}", replaceFieldValue); } else { sql.AppendFormat(",{0}", replaceFieldValue); } } } sql.Append(")"); using (OLEDataProvider sqlData = new OLEDataProvider()) { sqlData.Connect(Table.ConnectionString); System.Data.DataTable table = sqlData.QuerySql(sql.ToString()).Tables[0]; if (DocIdReplaceField != null) { table.Columns.Add(new System.Data.DataColumn("DocId", typeof(int))); for (i = 0; i < table.Rows.Count; i++) { table.Rows[i]["DocId"] = replaceFieldValueToDocId[long.Parse(table.Rows[i][DocIdReplaceField].ToString())]; } } return(table); } }