C++ Builder
| Главная | Уроки | Статьи | FAQ | Форум | Downloads | Литература | Ссылки | RXLib | Диски |

 
Надо ввести одно значение, SELECT UPDATE SET...
Parasit
Отправлено: 09.02.2007, 17:36


Дежурный стрелочник

Группа: Участник
Сообщений: 68



Надо ввести одно значение допустим это будет "значение"
в несколько столбцов одной строки где имя равно "Имя"

стартовое (default) значение не подходит для решения проблемы

допустим есть строка со значениями отличными от "значение"
и надо "обнулить" (UPDATE) эти значения на "значение":

я пишу
UPDATE table SET num1 = "значение", num2 = "значение" WHERE name ="Имя";

после компиляции и нажатия соот-й кнопки процесс зависает в трубу
я не могу даже диспетчером снять висит всё!

Заранее Всем Спасибо
AVC
Отправлено: 09.02.2007, 18:00


Ветеран

Группа: Модератор
Сообщений: 1583



Скорее всего он ждет освобождения каго то ресурса (может блокирована изменяемая запись).
beginner
Отправлено: 09.02.2007, 18:47


Дежурный стрелочник

Группа: Участник
Сообщений: 44



Эта строка

UPDATE table SET num1 = "значение", num2 = "значение" WHERE name ="Имя";

"работает" в SQLExplorer?
Parasit
Отправлено: 09.02.2007, 20:03


Дежурный стрелочник

Группа: Участник
Сообщений: 68



QUOTE (AVC @ 09.02.2007, 18:00)
Скорее всего он ждет освобождения каго то ресурса (может блокирована изменяемая запись).

Как может быть запись быть блокирована — Я не знаю?

Есть какието блокираторы?
AVC
Отправлено: 12.02.2007, 09:43


Ветеран

Группа: Модератор
Сообщений: 1583



QUOTE (Parasit @ 09.02.2007, 19:03)
Есть какието блокираторы?

Есть. И если вы не будете держать в секрете название сервера БД и компонентов доступа, то можно даже будет сказать какие.

Но это лишь одна из возможных причин, так как приведенная строка update видимых причин такого поведения не содержит.
Parasit
Отправлено: 13.02.2007, 00:08


Дежурный стрелочник

Группа: Участник
Сообщений: 68



Если я правильно ща скажу:

База Парадокс (кстати я слышал АДО круче, я создаю через датабазе десктоп адо он чето пишет что типа нехватает какогото компанента что мне делать?)
локальная(наверно biggrin.gif )

А беда в том что не получаеться заменить сразу несколько значения в одной строке на новое определенное!
AVC
Отправлено: 13.02.2007, 09:35


Ветеран

Группа: Модератор
Сообщений: 1583



QUOTE (Parasit @ 12.02.2007, 23:08)

База Парадокс (кстати я слышал АДО круче

Сразу, что бы не было путаницы в дальнейшем.
Прадокс это субд, а ADO/BDE/... это средства коммуникации между клиентом и бд. Так что "ADO круче Paradox" это примерно как "бетонные шпалы круче тепловоза ВЛ" smile.gif

QUOTE

я создаю через датабазе десктоп адо он чето пишет что типа нехватает какогото компанента что мне делать?)

Я не знаю. С Парадоксом не работаю тем более через ADO.

QUOTE

А беда в том что не получаеться заменить сразу несколько значения в одной строке на новое определенное!

При связи через BDE такой запрос обязан работать.
Как вам советовал beginner попробуйте этот запрос в SQLExplorer'e. Он работает через BDE и, следовательно, его можно использовать как средство отладки запросов.

Если это таки блокировки, то проверьте что с этой таблицей ни кто не работает в монопольном режиме и/или нет записей в состоянии редактирования. Обычно это может быть сама среда при разработке приложения (таблица открыта дважды — в среде и в приложении).
Parasit
Отправлено: 16.02.2007, 11:24


Дежурный стрелочник

Группа: Участник
Сообщений: 68



Вот хорошо такие люди как Вы есть
млин оболдеть вот Тоесть
АДО = БДЕ
+ — свои недостатки
значит могу со своей таблицей работать через АДО?
Tantos
Отправлено: 16.02.2007, 14:41


Станционный диспетчер

Группа: Участник
Сообщений: 108



Да. Можно так же посмотреть в сторону ADODataDriverEh+MemTableEh из поставки EhLib, но дальнейшая реклама — за olegenty cool.gif .

Вернуться в Работа с базами данных в C++Builder