Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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.041 c
8-1126147717
dm37
2005-09-08 06:48
2006.02.19
Вывод формы на второй экран монитора?


2-1138881592
Starter2006
2006-02-02 14:59
2006.02.19
Delphi + 1C


2-1138632049
gidd
2006-01-30 17:40
2006.02.19
трех позиционный CheckBox


2-1138713258
Sharapa
2006-01-31 16:14
2006.02.19
Помогите, не знаю команд окон


2-1138686739
Bratskiy
2006-01-31 08:52
2006.02.19
создание Wizard а





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский