00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00032 #include "nsISupports.idl"
00033
00034 interface sbISQLBuilderCriterion;
00035 interface sbISQLBuilderCriterionIn;
00036 interface sbISQLSelectBuilder;
00037
00046 [scriptable, uuid(c214b05b-0aa8-4bf9-aa0f-a1b1ff646539)]
00047 interface sbISQLBuilder : nsISupports
00048 {
00049 const unsigned long MATCH_EQUALS = 0;
00050 const unsigned long MATCH_NOTEQUALS = 1;
00051 const unsigned long MATCH_GREATER = 2;
00052 const unsigned long MATCH_GREATEREQUAL = 3;
00053 const unsigned long MATCH_LESS = 4;
00054 const unsigned long MATCH_LESSEQUAL = 5;
00055 const unsigned long MATCH_LIKE = 6;
00056 const unsigned long MATCH_NOTLIKE = 7;
00057 const unsigned long MATCH_MATCH = 8;
00058
00062 attribute long limit;
00063
00067 attribute boolean limitIsParameter;
00068
00072 attribute long offset;
00073
00077 attribute boolean offsetIsParameter;
00078
00079 const unsigned long JOIN_INNER = 0;
00080 const unsigned long JOIN_LEFT = 1;
00081 const unsigned long JOIN_LEFT_OUTER = 2;
00082
00094 void addJoin(in unsigned long aJoinType,
00095 in AString aJoinedTableName,
00096 in AString aJoinedTableAlias,
00097 in AString aJoinedColumnName,
00098 in AString aJoinToTableName,
00099 in AString aJoinToColumnName);
00100
00119 void addJoinWithIndexHint(in unsigned long aJoinType,
00120 in AString aJoinedTableName,
00121 in AString aJoinedTableAlias,
00122 in AString aJoinedColumnName,
00123 in AString aJoinToTableName,
00124 in AString aJoinToColumnName,
00125 in boolean aRequiresFromTableIndexHint,
00126 in boolean aRequiresToTableIndexHint);
00127
00139 void addSubqueryJoin(in unsigned long aJoinType,
00140 in sbISQLSelectBuilder aJoinedSubquery,
00141 in AString aJoinedTableAlias,
00142 in AString aJoinedColumnName,
00143 in AString aJoinToTableName,
00144 in AString aJoinToColumnName);
00145
00154 void addJoinWithCriterion(in unsigned long aJoinType,
00155 in AString aJoinedTableName,
00156 in AString aJoinedTableAlias,
00157 in sbISQLBuilderCriterion aCriterion);
00158
00164 void addSubquery(in sbISQLSelectBuilder aSubquery,
00165 in AString aAlias);
00166
00170 void reset();
00171
00176 AString toString();
00177 };
00178
00183 [scriptable, uuid(7a35ea83-e75f-4299-935c-9a678e74c13f)]
00184 interface sbISQLWhereBuilder : sbISQLBuilder
00185 {
00190 void addCriterion(in sbISQLBuilderCriterion aCriterion);
00191
00196 void removeCriterion(in sbISQLBuilderCriterion aCriterion);
00197
00206 sbISQLBuilderCriterion createMatchCriterionString(in AString aTableName,
00207 in AString aSrcColumnName,
00208 in unsigned long aMatchType,
00209 in AString aValue);
00210
00211 sbISQLBuilderCriterion createMatchCriterionBetweenString(in AString aTableName,
00212 in AString aSrcColumnName,
00213 in AString aLeftValue,
00214 in AString aRightValue);
00215
00216 sbISQLBuilderCriterion createMatchCriterionNotBetweenString(in AString aTableName,
00217 in AString aSrcColumnName,
00218 in AString aLeftValue,
00219 in AString aRightValue);
00220
00229 sbISQLBuilderCriterion createMatchCriterionLong(in AString aTableName,
00230 in AString aSrcColumnName,
00231 in unsigned long aMatchType,
00232 in long aValue);
00233
00241 sbISQLBuilderCriterion createMatchCriterionNull(in AString aTableName,
00242 in AString aSrcColumnName,
00243 in unsigned long aMatchType);
00244
00253 sbISQLBuilderCriterion createMatchCriterionTable(in AString aLeftTableName,
00254 in AString aLeftColumnName,
00255 in unsigned long aMatchType,
00256 in AString aRightTableName,
00257 in AString aRightColumnName);
00258
00264 sbISQLBuilderCriterionIn createMatchCriterionIn(in AString aTableName,
00265 in AString aSrcColumnName);
00266
00273 sbISQLBuilderCriterion createMatchCriterionParameter(in AString aTableName,
00274 in AString aSrcColumnName,
00275 in unsigned long aMatchType);
00281 sbISQLBuilderCriterion createAndCriterion(in sbISQLBuilderCriterion aLeft,
00282 in sbISQLBuilderCriterion aRight);
00283
00289 sbISQLBuilderCriterion createOrCriterion(in sbISQLBuilderCriterion aLeft,
00290 in sbISQLBuilderCriterion aRight);
00291
00292
00293 };
00294
00299 [scriptable, uuid(b91ae93b-9c1e-427c-a751-5c0c19fcdbc3)]
00300 interface sbISQLSelectBuilder : sbISQLWhereBuilder
00301 {
00305 attribute AString baseTableName;
00306
00310 attribute AString baseTableAlias;
00311
00315 attribute boolean distinct;
00316
00323 void addColumn(in AString aTableName,
00324 in AString aColumnName);
00325
00329 void clearColumns();
00330
00337 void addOrder(in AString aTableName,
00338 in AString aColumnName,
00339 in boolean aAscending);
00340
00345 void addRandomOrder();
00346
00352 void addGroupBy(in AString aTableName,
00353 in AString aColumnName);
00354
00355 };
00356
00361 [scriptable, uuid(8c584d54-2fa1-4965-8345-f1eda5a1e304)]
00362 interface sbISQLInsertBuilder : sbISQLBuilder
00363 {
00368 void addColumn(in AString aColumnName);
00369
00374 void addValueString(in AString aValue);
00375
00380 void addValueLong(in long aValue);
00381
00385 void addValueNull();
00386
00390 void addValueParameter();
00391
00397 void addValueRaw(in AString aValue);
00398
00402 attribute AString intoTableName;
00403
00408 attribute sbISQLSelectBuilder select;
00409 };
00410
00415 [scriptable, uuid(68991dbd-83f0-4df9-b3f6-89d0982ed491)]
00416 interface sbISQLUpdateBuilder : sbISQLWhereBuilder
00417 {
00421 attribute AString tableName;
00422
00428 void addAssignmentString(in AString aColumnName,
00429 in AString aValue);
00430
00435 void addAssignmentParameter(in AString aColumnName);
00436 };
00437
00442 [scriptable, uuid(73a18b36-2eee-429e-9cda-1f4428c3afb5)]
00443 interface sbISQLDeleteBuilder : sbISQLWhereBuilder
00444 {
00448 attribute AString tableName;
00449 };
00450
00456 [scriptable, uuid(442c1d9d-4e8e-4aa1-9124-2f700b625a45)]
00457 interface sbISQLBuilderCriterion : nsISupports
00458 {
00459 [noscript] AString toString();
00460 };
00461
00466 [scriptable, uuid(51992f09-7b9a-4a91-b708-b4551c25acf9)]
00467 interface sbISQLBuilderCriterionIn : sbISQLBuilderCriterion
00468 {
00473 void addString(in AString aValue);
00474
00479 void addLong(in long aValue);
00480
00485 void addSubquery(in sbISQLSelectBuilder aSubquery);
00486
00490 void clear();
00491 };
00492