Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > SQL, базы данных
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.12.2010, 18:13   #1
Drugnir
Форумчанин
 
Регистрация: 17.11.2010
Сообщений: 262
По умолчанию Delphi+FireBird поблема с мониторингом

У меня есть таблица заявок с полями Тема, Описание и Юзер
Как вошедшему юзеру показать только его заявки.
Drugnir вне форума Ответить с цитированием
Старый 05.12.2010, 00:21   #2
Прик
Форумчанин
 
Регистрация: 08.09.2010
Сообщений: 880
По умолчанию

select * from заявки where Юзер = Вася

Последний раз редактировалось Прик; 05.12.2010 в 00:26.
Прик вне форума Ответить с цитированием
Старый 05.12.2010, 00:44   #3
Drugnir
Форумчанин
 
Регистрация: 17.11.2010
Сообщений: 262
По умолчанию

Ну это-то понятно, но только Юзер вошедший не всегда Вася, у меня есть переменная в которой я храню имя юзера вошедшего, а переменную в select не запихнуть вроде бы.
Drugnir вне форума Ответить с цитированием
Старый 05.12.2010, 01:39   #4
Прик
Форумчанин
 
Регистрация: 08.09.2010
Сообщений: 880
По умолчанию

Ну, здрасьте. Еще как запихнуть:
'select * from заявки where Юзер = '+QuotedStr(<переменная>)
Прик вне форума Ответить с цитированием
Старый 05.12.2010, 02:19   #5
Drugnir
Форумчанин
 
Регистрация: 17.11.2010
Сообщений: 262
По умолчанию

вот пишу как вы посоветовали

код:
Код:
try
  DataModule1.tr2.StartTransaction;
  DataModule1.ds2.Active:=False;
  DataModule1.ds2.SelectSQL.Text:=('SELECT USER_NAME, DATA, NAME, UTOCHNENIE, OPISANIE, 
ISPOLNENIE, FILE_NAME FROM ZAYAVKA, NEW_TABLE 
WHERE NEW_TABLE.ID_NAME=ZAYAVKA.ID_NAME AND ZAYAVKA.USER_NAME='+QuotedStr(Nick));
  DataModule1.ds2.Active:=True;
  DataModule1.ds2.Prepare;
  DataModule1.ds2.ExecSQL;
  DataModule1.ds2.Close;
  DataModule1.ds2.Open;
  dbgrd1.Visible:=True;
  DataModule1.tr2.Commit;
  except
  DataModule1.tr2.Rollback;
  end;
но мне выдает ошибку use Open for select Statement не пойму, так нельзя в DBGrid загружать данные dbgrd1 настроен на ds2( DATASET 2)

Последний раз редактировалось Stilet; 05.12.2010 в 13:33.
Drugnir вне форума Ответить с цитированием
Старый 05.12.2010, 02:52   #6
Прик
Форумчанин
 
Регистрация: 08.09.2010
Сообщений: 880
По умолчанию

Ага, этакая адская смесь из всех методов и свойств. Как тут ошибке не быть.
Запрос SELECT не может сопровождаться методом ExecSQL. Этот метод для модификации данных.
Всего то и надо:
Код:
DataModule1.ds2.SelectSQL.Text:='SELECT ...'; //без всяких скобок, обрамляющих строку запроса
DataModule1.ds2.Open;
При этом транзакции в IBX стартуют автоматом.

Если в запросе нужны данные из более чем одной таблицы (ZAYAVKA, NEW_TABLE), то поля таблиц должны упоминаться с квалификаторами этих таблиц:
ZAYAVKA.USER_NAME, и т.д.
Прик вне форума Ответить с цитированием
Старый 05.12.2010, 03:02   #7
Drugnir
Форумчанин
 
Регистрация: 17.11.2010
Сообщений: 262
По умолчанию

Спасибо. Все заработало.
Drugnir вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Поблема с удаление из базы Ketty_byyy БД в Delphi 2 23.05.2010 08:49
CMS с мониторингом Mu Online Extreme WordPress и другие CMS 2 14.05.2009 18:27
помогали здесь добрые людис мониторингом файла - расширить бы. zander Microsoft Office Excel 1 15.03.2009 23:12
Поблема с матрицами Ilius Помощь студентам 13 18.12.2007 19:27
Поблема совместимости с вистой GN_ Общие вопросы Delphi 4 23.12.2006 21:43