Форум: "Начинающим";
Текущий архив: 2006.02.19;
Скачать: [xml.tar.bz2];
ВнизМожно ли сделать такой запрос? Найти похожие ветки
← →
49 Cent (2006-01-29 19:02) [0]Есть 3 таблицы в Аксесе. Структура разная, однако, во всех 3 таблицах есть 2 одинаковых полях. Условно назовем их поле1 и поле2. Необходимо пробежаться по 3 таблицам и проверить: если в поле1 к примеру цифра "1", то в поле2 необходимо поставить "+". Можно такое сделать средствами SQL запроса? Если можно вот бы пример!
Заранее спасибо!
← →
sniknik © (2006-01-29 19:14) [1]условно назовем хелп справкой... так вот в справке есть описания различных комманд, необходимо только пробежаться по темам и найти команду update ...
для 3х таблиц сразу неприменимо... по одной.
> Если можно вот бы пример!
на 2+2 примеров не дают... это константа.
← →
49 Cent (2006-01-29 21:19) [2]
> условно назовем хелп справкой...
Смешно. Не зря у вас модный голубой значок (с). Может и у меня будет...
Но пока очередной тупой вопрос!
UPDATE Таблица1
SET От-ка = *
WHERE № = 5;
UPDATE Таблица2
SET От-ка = *
WHERE № = 5;
Выдает ошибку ""List index out of bounds (0)"! Как дальше жить? Вернее как вылечить?
← →
sniknik © (2006-01-29 21:47) [3]> List index out of bounds (0)
дельфевская ошибка... гдето к списку обращаешся по индексу 0, а такого нет.
запрос в этом случае не причем.
+ имена полей "От-ка", "№" неудачные... это мягко говоря. переименуй. на крайний случай если нельзя бери в скобки []
и говорил же. по одному запросу, за раз, не больше.
> Вернее как вылечить?
исправить... посмотреть в отладчике на какой строке и исправить... (пока подозрение на 17ю.)
← →
49 Cent (2006-01-29 22:54) [4]Использую такой код:
UPDATE Таблица1
SET [От-ка] = "*"
WHERE [№] = "5";
Когда активирую Adoquery3
Пишет ADOquery3: ComandText does not return a result set. Причем такая ошибка возникает если я запускаю программу отдельно от Делфи. Если в рамках Делфи, то вылезает еще такой текст: Текущий проводник не поддерживает возврат нескольких наборов записей в результате одной операции. Причем, что интересно! Все выполняется как надо, но при это еще и ошибка выползает. Вопроса собственно два! Почему появляется ошибка и как пробежаться по другим таблицам? Вот в указанном примере просматривается Таблица1, но можно ли используя 1 компонент Adoquery изменять и другие таблицы?
← →
sniknik © (2006-01-30 00:01) [5]а ты ошибку то переведи. что получается? - "ComandText не возвращает результирующий набор"
в ADO кстати четко делится на команды/компоненты для, возращаюшие набор и не возращаюшие. также позволительны команды возвращающие несколько наборов за раз (если провайдер данных позволяет), поэтому у тебя хоть компонент используется не по назначению но команда выполняется (мало ли, в пакете команд возврашающей рекордсет команде вполне может предшествовать невозвращающая...). а следом оно всетаки пытается этот рекордсет вытащить... а нет его. вот и ошибка.
TADOQuery это компонент гибрид, под тип BDE-шного, но с точки зрения ADO обьеденяющий два четко разграниченных типа команд - возвращающих и нет рекордсет. (для невозврашающих сделали дополнительный метод аналог BDE-шному)
не советую им пользоваться... т.к. идеологию он "ломает", и был бы этом смысл, можно было бы смирится, так ведь и смысла нет.
впрочем TADOTable еще хуже, этои и в данные вмешивается. (вообще бы запретил еслиб мог)
пользуйся TADOCommand для невозвращающих и TADODataSet для возвращающих, и обязательно с TADOConection даже ели думаеш что он лишний.
твой запрос будет выглядеть (для 2х таблиц)
ADOCommand1.ComandText:= "UPDATE Таблица1 SET [От-ка]=""*"" WHERE [№]=5";
ADOCommand1.Execute;
ADOCommand1.ComandText:= "UPDATE Таблица2 SET [От-ка]=""*"" WHERE [№]=5";
ADOCommand1.Execute;
для трех уж как нибудь придумай сам...
← →
49 Cent (2006-01-30 00:39) [6]Ну, что я могу сказать! Говорят, что на тупой вопрос нельзя получить умный ответ. Сегодня я опроверг это заявление. Я задал ламерский вопрос, а получил подробный, умный и не побоюсь этого слова, научный ответ. В связи со всем выше сказанным, выражаю респект (древнеславянский эквивалент - уважуха) sniknik за такой подробный ответ. Он мне очень сильно помог и поэтому выражаю свой респект и благодарность. БОЛЬШОЕ СПАСИБО!
← →
msguns © (2006-01-30 09:45) [7]>49 Cent (30.01.06 00:39) [6]
>Ну, что я могу сказать! Говорят, что на тупой вопрос нельзя получить умный ответ. Сегодня я опроверг это заявление
:)
← →
sniknik © (2006-01-30 10:58) [8]постараюсь больше не поддаваться на провокации... даже если ОЧЧЕНЬ скучно.
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2006.02.19;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.044 c