Поиск:

Ответ в темуСоздание новой темы Создание опроса
> UpdateSQL, обновить поле, по которому идет выборка 
:(
    Опции темы
SkyHawk
Дата 3.5.2007, 07:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 164
Регистрация: 17.8.2006
Где: г. Новосибирск

Репутация: нет
Всего: 2



Подскажите.
Редактирую записи с выборкой по двум полям. Хочется, чтобы была возможность отредактировать и эти два поля. Как это можно сделать. 
Вот текст sql-запроса, который прописан в свойстве modify компонента UpdateSQL:

Код


update clients.db
set
  N_MASH=Tag,
  FIL=:FIL,
  N_KL=:N_KL,
  IDENT=:IDENT,
where
  N_MASH= :N_MASH
and
  N_KL=:N_KL



то есть запрос пытается отредактировать и два поля, по которым выполняется выборка, и, естественно, ругается. А как можно все-таки победить?

И еще вопрос: как можно внешнюю переменную программы передать в запрос SQL?
--------------------
Быть может все, что может быть, И даже то, что быть не может.
PM MAIL WWW   Вверх
SenkraD
Дата 3.5.2007, 09:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 933
Регистрация: 3.2.2006
Где: Украина::Киев

Репутация: 3
Всего: 23



Цитата(SkyHawk @  3.5.2007,  07:41 Найти цитируемый пост)
И еще вопрос: как можно внешнюю переменную программы передать в запрос SQL?

Сформулируй запрос руками и потом передай нужному свойству, не помню как оно зовётся.
Или передавай значение этой переменной в какой-нибудь параметр.

А по основной проблеме: если это поля одной таблицы, а я вижу оно так и есть, то достаточно у компонента TQuery установить в true свойтво RequestLive.

И ещё вопрос: какая СУБД?


--------------------
 Имеющий язык - да не убоится спросить! 
user posted image
PM MAIL ICQ   Вверх
SkyHawk
Дата 3.5.2007, 10:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 164
Регистрация: 17.8.2006
Где: г. Новосибирск

Репутация: нет
Всего: 2



Блин... Не догадался... Действительно говорят: все гениальное - просто. 
СУБД использую BDE. Но архитектура не клиент-сервер. Просто приложение, которое обращается к локальной таблице. 
Спасибо, буду пробовать.
--------------------
Быть может все, что может быть, И даже то, что быть не может.
PM MAIL WWW   Вверх
SkyHawk
Дата 3.5.2007, 10:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 164
Регистрация: 17.8.2006
Где: г. Новосибирск

Репутация: нет
Всего: 2



Ни фига не получается.
Поставил RequestLive=true. Говорит: Update Failed. Причем именно на эти два поля. Когда редактирую остальные, принимает изменения нормально.
И еще. Вместо формата Paradox посоветовали формат Access - быстрее работает. Как можно подружить Access и BDE, не используя псевдонимов (чтобы не приходилось бегать настраивать каждую тачку в сети). Наверняка ведь есть такая возможность.

Это сообщение отредактировал(а) SkyHawk - 3.5.2007, 12:56
--------------------
Быть может все, что может быть, И даже то, что быть не может.
PM MAIL WWW   Вверх
SenkraD
Дата 3.5.2007, 13:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 933
Регистрация: 3.2.2006
Где: Украина::Киев

Репутация: 3
Всего: 23



Воощбе с Access'ом работают через ADO, но с ADO знаком только заочно

А поля у тебя не вычесляемые? На них не стоят запреты на редактирование.

P.S. ADO медленее BDE в 2 (местами в раз 200) 



--------------------
 Имеющий язык - да не убоится спросить! 
user posted image
PM MAIL ICQ   Вверх
SkyHawk
Дата 4.5.2007, 03:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 164
Регистрация: 17.8.2006
Где: г. Новосибирск

Репутация: нет
Всего: 2



Цитата(SenkraD @  3.5.2007,  13:37 Найти цитируемый пост)
P.S. ADO медленее BDE в 2 (местами в раз 200)

  smile 


Цитата(SenkraD @  3.5.2007,  13:37 Найти цитируемый пост)
Воощбе с Access'ом работают через ADO, но с ADO знаком только заочно

Ну, я пробовал компонентом Table - работает. А вот через Query не хочет. Мне тоже посоветовали через ADO. Ладно, буду Парадоксом работать - время жалко.


Цитата(SenkraD @  3.5.2007,  13:37 Найти цитируемый пост)
А поля у тебя не вычесляемые? На них не стоят запреты на редактирование.

Нет, не вычисляемые. Тип данных полей - short int. Запретов на редактирование тоже нету.
--------------------
Быть может все, что может быть, И даже то, что быть не может.
PM MAIL WWW   Вверх
Anikmar
Дата 4.5.2007, 10:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2513
Регистрация: 26.11.2006
Где: Санкт-Петербург

Репутация: нет
Всего: 59



Цитата(SenkraD @  3.5.2007,  13:37 Найти цитируемый пост)
P.S. ADO медленее BDE в 2 (местами в раз 200) 

Интересно бы узнать на чем основывается данный вывод?

В другом форуме мы проводили тесты по сравнению скорости. Только в 1 тесте ADO оказался медленнее и то, это был достаточно натянутый тест был. Во всех рабочих примерах ADO был шустрее, в некоторых намного (как раз порядка 200).

Можно привести примеры, где BDE оказывается в 200 раз быстрее ADO? Мне даже интересно стало.
PM MAIL ICQ   Вверх
SenkraD
Дата 4.5.2007, 10:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 933
Регистрация: 3.2.2006
Где: Украина::Киев

Репутация: 3
Всего: 23



Я сегодня вечером кину кусок статьи по этому поводу.

P.S. Я ж сказал, что знаком с ADO заочно + я и BDE не пользуюсь - смненил его на AbsoluteDB или SQLite


--------------------
 Имеющий язык - да не убоится спросить! 
user posted image
PM MAIL ICQ   Вверх
Anikmar
Дата 4.5.2007, 10:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2513
Регистрация: 26.11.2006
Где: Санкт-Петербург

Репутация: нет
Всего: 59



Цитата(SenkraD @  4.5.2007,  10:36 Найти цитируемый пост)
Я сегодня вечером кину кусок статьи по этому поводу.


Я базируюсь не на статьях и не на теориях. Я реально делал сравнительные тесты  - где есть реальные цифры сравнения быстродействия - так как меня этот вопрос сильно волновал. Одна из причин моего отказа от BDE была именно скорость и прежде чем принять решение об отказе от BDE я проводил такое сравнение.

Другой момент - если ADO использовать неправильно (вернее не совсем правильно) то может быть он и будет медленнее. Я сравнивал именно компоненты TQuery и TADOQuery. Последний однозначно победил по скорости с достаточно весомым перевесом.
PM MAIL ICQ   Вверх
SkyHawk
Дата 4.5.2007, 11:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 164
Регистрация: 17.8.2006
Где: г. Новосибирск

Репутация: нет
Всего: 2



Все, это конечно интересно. Сегодня я посмел знакомым сказать, что на ADO грешат, как на более медленный по сравнению с BDE, так меня чуть живьем не съели. Теперь экспериментирую с ADO в связке с Access'ом, и знаете, впечатления после BDE & Paradox такие, словно после Запорожца сел в Мерседес (не в обиду нашему автопрому  smile  ). Все низкоуровневые действия уже запрограммированы изначально (во сказал!  smile  ). Возможно сейчас и справлюсь со своими проблемами. Дам знать.
--------------------
Быть может все, что может быть, И даже то, что быть не может.
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C++: Базы данных"
chipset

Данный форум предназначен для обсуждения вопросов прямым образом связанных с C++ и БД. Так, вопросы только по C++ следует задавать в C++:Общие вопросы а вопросы по абстрактным БД в Базах данных или в соответствующих под-форумах.

Благодарим за понимание.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, chipset.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Базы данных | Следующая тема »


 




[ Время генерации скрипта: 0.0707 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.