![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Проблема с запросом [D7, MSSQL]
VadimSpb © (2006-08-16 19:58:00)Добрый день!
Выполняю следующий запрос в программе обновления БД:
if tb_Name.IndexOf('Addresses')<>-1 then // Читаем список названий полей
ElementConnection.GetFieldNames('Addresses',pl_Name);
if pl_Name.IndexOf('PostIndexID')=-1 then
begin // Создаем поле PostIndexID
ADOCommand.CommandText := 'ALTER TABLE Addresses ADD PostIndexID int';
ADOCommand.Execute;
ADOCommand.CommandText := 'UPDATE Addresses SET PostIndexID=1';
ADOCommand.Execute;
end;
Иногда получается интересный результат: поле создается, а заполняется 1 только 80-90% всех записей !
Иногда все отрабатывает нормально. В чем м.б. причина?
User_Name (2006-08-16 20:59:00) [21]2 VadimSpb (16.08.06 20:54) [7]
Поиск по этому форуму рулит (должен) :)
User_Name (2006-08-16 20:56:00) [22]Вообще, то я бы вынес всю эту байду в отдельную ХП.
Естессно ИМХО.
VadimSpb (2006-08-16 20:54:00) [23]
> надо отрабатывать результат завершения таких операций.
Поподробнее можно?
User_Name (2006-08-16 20:52:00) [24]Работать то возможно и должно :). ИМХО надо отрабатывать результат завершения таких операций.
А насчет запросов - представить трудно, что было бы с сотней активно работающих пользователей если бы "строго последовательно"
VadimSpb (2006-08-16 20:46:00) [25]
> ALTER TABLE Addresses ADD PostIndexID int DEFAULT 1
В моей задаче не прокатит.
DEFAULT определяет значение по умолчанию для столбца если пропущено значение при добавлении строки.
У меня добавляется столбец и необходимо всем существующим строкам дать значение 1
VadimSpb (2006-08-16 20:39:00) [26]Согласен. Исторические корни :))
Все равно должно работать. Следом еще идут запросы, как они выполняются на сервере: строго последовательно?
User_Name (2006-08-16 20:34:00) [27]Если в программе действительно такой код, то почему не сделать
ALTER TABLE Addresses ADD PostIndexID int DEFAULT 1
VadimSpb (2006-08-16 20:21:00) [28]Если нового поля нет, создаем его и заполняем 1.
В результате иногда наблюдаю NULL в новом поле примерно на 10-20% записей.
Val (2006-08-16 20:18:00) [29]успевают добавить новые записи после апдейта и до проверки?