![]() |
|
![]() ![]() ![]() |
|
RetroRe |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 15 Регистрация: 22.1.2007 Репутация: нет Всего: нет |
Добрый день. У меня такой вопрос.
Как можно проверить в Builder или это запрос, результатом которого табличка (select...), или запрос который редактирует базу (update, insert...). Только не предлагайте проверять на вход ключевых слов. Использую TQuery,TADOQuery. ![]() |
|||
|
||||
Rodman |
|
|||
CIO ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 6144 Регистрация: 7.5.2006 Где: Ukraine ⇛ Kyiv ci ty Репутация: 1 Всего: 122 |
впиши запрос в ТADOQuery и напиши в коде
если все нормально откроется, то запрос корректный (возможно)... но еще есть вариант сделать запросу Active=TRUE;, но с этим я не уверен... |
|||
|
||||
RetroRe |
|
||||
![]() Новичок Профиль Группа: Участник Сообщений: 15 Регистрация: 22.1.2007 Репутация: нет Всего: нет |
Запрос:
insert into city select 1,'aaaaaaaa'
Возникает ошибка EDatabaseError. Я пишу:
Тогда ошибка: List index out of bounds (0) И что делать? |
||||
|
|||||
Rodman |
|
|||
CIO ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 6144 Регистрация: 7.5.2006 Где: Ukraine ⇛ Kyiv ci ty Репутация: 1 Всего: 122 |
по подробнее, что ты хочешь сделать при помощи этого запроса??? то что ты написал - почти набор символов |
|||
|
||||
RetroRe |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 15 Регистрация: 22.1.2007 Репутация: нет Всего: нет |
Есть таблица city. Есть два поля city_id, city_Name. И запрос нормальный.
Пишу так:
|
|||
|
||||
Anikmar |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2513 Регистрация: 26.11.2006 Где: Санкт-Петербург Репутация: нет Всего: 59 |
insert into city select 1,'aaaaa'
select - это имя поля? Тогда надо в кавычках - это зарезервированное слово По идее проверить какого типа запрос можно так: Если после команды Open свойство Active осталось true - значит запрос остался открытым и в нем есть записи. А если нет - значит он отработал. (Не проверял - чисто предположение) |
|||
|
||||
Rodman |
|
||||||||
CIO ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 6144 Регистрация: 7.5.2006 Где: Ukraine ⇛ Kyiv ci ty Репутация: 1 Всего: 122 |
все равно не могу разобрать запрос. синтаксис запроса на добавление
но в этом запросе
не понятно откуда единица, и как что такое select!!! |
||||||||
|
|||||||||
RetroRe |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 15 Регистрация: 22.1.2007 Репутация: нет Всего: нет |
запрос может быть как 1 так и 2. У таблицы сity есть два поля 1) city_id - int 2)city_name - text. И потому такой запрос
вставляет одну запись. [1,'aaaaaa'] А на счет Active то сейчас проверю. Это сообщение отредактировал(а) RetroRe - 1.2.2007, 14:05 |
|||
|
||||
RetroRe |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 15 Регистрация: 22.1.2007 Репутация: нет Всего: нет |
Да Active то false, но речь не в етом.
При вызове Open возникает ошибка EDatabaseError. И как мне знать, что ошибка возникла именно через то что там было написано insert или update. Может эта ошибка возникает в других ситуациях. И что ме тогда делать. Active тоже будет false. |
|||
|
||||
Кнопа |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 14 Регистрация: 1.2.2007 Где: Москва Репутация: нет Всего: нет |
Насколько мне известно, есть форма:
1)Use a VALUES clause to specify the data values for one row: INSERT INTO MyTable (PriKey, Description) VALUES (123, 'A description of part 123.') 2)Use a SELECT subquery to specify the data values for one or more rows. INSERT INTO MyTable (PriKey, Description) SELECT ForeignKey, Description FROM SomeView А у тебя select из пустоты... Может в этом проблема? |
|||
|
||||
RetroRe |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 15 Регистрация: 22.1.2007 Репутация: нет Всего: нет |
Суть не в запросе.
пусть будет запрос
Проблема не в этом. |
|||
|
||||
Anikmar |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2513 Регистрация: 26.11.2006 Где: Санкт-Петербург Репутация: нет Всего: 59 |
Так а какой тип исключения выскакивает? Просто ошибка базы данных или что-то вроде "Несовместимый тип запроса"?
|
|||
|
||||
RetroRe |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 15 Регистрация: 22.1.2007 Репутация: нет Всего: нет |
Допустимо я напишу так:
Все будет хорошо, ошибка не выскакивает. Но если будет какая-то другая ошибка, при которой возникает EDatabaseError, результату то никакого. И я не буду знать шо такое. Вот в чем проблема. ![]() |
|||
|
||||
Rodman |
|
|||
CIO ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 6144 Регистрация: 7.5.2006 Где: Ukraine ⇛ Kyiv ci ty Репутация: 1 Всего: 122 |
RetroRe, если делаешь: INSERT, DELETE или UPDATE то лучше использовать ExecSQL, а не Open...
|
|||
|
||||
RetroRe |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 15 Регистрация: 22.1.2007 Репутация: нет Всего: нет |
Ну в этот список можно добавить еще много чего. Например CREATE, EXEC ... Не провиряти мне запрос на вход таких слов. |
|||
|
||||
![]() ![]() ![]() |
Правила форума "C++: Базы данных" | |
|
Данный форум предназначен для обсуждения вопросов прямым образом связанных с C++ и БД. Так, вопросы только по C++ следует задавать в C++:Общие вопросы а вопросы по абстрактным БД в Базах данных или в соответствующих под-форумах. Благодарим за понимание. Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, chipset. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Базы данных | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |