Язык запросов в ADOCE

править

Язык запросов в ADOCE поддерживает следующие команды:

   * DELETE
   * INSERT
   * SELECT – Join
   * SELECT – Like
   * SELECT – Order By
   * SELECT – Projection
   * SELECT – Restricted
   * SELECT – Simple

Эта команда позволяет удалить опеределенную сторку из таблицы. Команда DELETE в отличие от метода ADO Delete, позволяет удалять сразу несколько строк.

DELETE [FROM] tablename [WHERE where-expression]

Параметры:

tablename

Имя таблицы из которой будут удаляться строки.

where-expression

Аналогично выражению WHERE команды SELECT. Если условие WHERE присутствует в команде, оманда удалит только строки ему удовлетворяющие. Более подробно описано в описании команды SELECT - Restricted.

Возвращаемые значения.

The following table shows the error values that can be returned. Команда может вернуть следующие коды ошибок: Константа Значение Описание E_OUTOFMEMORY 8007000E Out of memory. DB_E_ERRORSINCOMMAND 80040E14 Incorrect syntax near token. DB_E_NOTABLE 80040E37 Table table does not exist. DB_E_BADCOLUMNID 80040E11 Field field does not exist. DB_E_CANTCONVERTVALUE 80040E07 Cannot convert type, constant. DB_E_DATAOVERFLOW 80040E57 Constant value constant overflowed.

Дополнительная информация.

Если в команде не используется условие WHERE, команда удалит все записи из указанной таблицы. Ключевое слово FROM использовать не обязательно, единственная его функция — совместимость со стандартами SQL.

Пример:

Dim rs, i
Set rs = CreateObject("ADOCE.Recordset.3.1")
rs.Open "CREATE TABLE deleteme (a int, b int, c int)"
rs.Open "deleteme", "", adOpenKeyset, adLockOptimistic
For i = 1 To 15
 rs.Addnew "a", i
Next
MsgBox rs.Recordcount
rs.Close
rs.Open "DELETE deleteme WHERE 'a' > 7"
MsgBox "Records deleted"
rs.Open "deleteme"
MsgBox rs.Recordcount
rs.Close
rs.Open "DROP TABLE deleteme"
Set rs = Nothing