Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.02.19;
Скачать: CL | DM;

Вниз

Можно ли сделать такой запрос?   Найти похожие ветки 

 
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;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.043 c
1-1137884308
ancot
2006-01-22 01:58
2006.02.19
Очередной генератор отчетов


10-1113983044
Fishb1
2005-04-20 11:44
2006.02.19
Работа с файлами EXCEL


15-1138625475
syte_ser78
2006-01-30 15:51
2006.02.19
какого рекламодателя использывать?


2-1138638192
Arazel
2006-01-30 19:23
2006.02.19
Почему команда Insert не работает в DELPHI (ADOQuery)


2-1138951880
Антон1209
2006-02-03 10:31
2006.02.19
Передача параметра