Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Базы данных
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 30.01.2012, 16:32
whizzkey whizzkey вне форума
Прохожий
 
Регистрация: 16.10.2010
Сообщения: 35
Репутация: 10
По умолчанию Token Unknown

Ребят такая проблема - есть процедура, которая осуществляет выбор данных о сотрудниках компании из представления FullLIst на основе текущего выбранного элемента в иерархии TreeView, собственно вот она
Код:
begin
Screen.Cursor := crSQLWait; //Изменяем форму указателя мыши
//на "песочные часы"
    with datamodule1, Table1, TreeView.Selected do
        begin
        Close; //Закрываем набор данных Table1
              //Выбираем все столбцы из представления FullList
        DataSet.CommandText := 'select * from FullList ';
    if AbsoluteIndex > 0 then
    begin //Если выбран НЕ корневой элемент структуры, то ...
          //Находим соответствующую запись в таблице DEPS
      datamodule1.sidsDeps.Locate('DeptFullName', Text,[]);
          //Добавляем условие в запрос -
          //выбор сотрудников из всех подразделений, для которых
          //содержимое поля Parents начинается с соответствующего
          //списка идентификаторов
!!!!!!  DataSet.CommandText := DataSet.CommandText+'WHERE DepID = '+IntToStr(datamodule1.sidsDepsDeptID.AsInteger) +'or Parents starting with';
        if Parent.AbsoluteIndex > 0 then
        DataSet.CommandText := DataSet.CommandText + datamodule1.sidsDepsParents.AsString;
          //Добавляем к списку Parents идентификатор
          //текущего подразделения
        DataSet.CommandText := DataSet.CommandText +IntToStr(datamodule1.sidsDepsDeptID.AsInteger) +',';
        end;
    if ckByPoss.Checked then
    //Если есть сортировка по уровню должностей, то...
!!!!  DataSet.CommandText := DataSet.CommandText+'order by PosLevel, LastName, FirstName, FatherName'
    else
    //в противном случае сортируем строки по именам
!!!!  DataSet.CommandText := DataSet.CommandText +'order by LastName, FirstName, FatherName';
    Open; //Выбираем данные из представления FullList
    Screen.Cursor := crDefault; //Восстанвливаем указатель мыши,
    //выбранный по умолчанию
  end;
Возникает непонятная мне ошибка Token Unknow и далее те строчки напротив которых стоят !!!!(ругается либо на "=" либо на by),
Т.е dataset не хочет выполнять запрос, который я внего помещаю. Изза чего может происходить такая ошибка?
Ответить с цитированием
  #2  
Старый 31.01.2012, 09:25
Vocabulary Vocabulary вне форума
Новичок
 
Регистрация: 17.09.2009
Сообщения: 85
Репутация: 9
По умолчанию

Повнимательнее надо быть с пробелами при формировании запроса.
Например.
Код:
'WHERE DepID = '+IntToStr(datamodule1.sidsDepsDeptID.AsInteger) +'or Parents starting with';
Превратиться в:
Код:
'WHERE DepID = 12or Parents starting with';
Понятно, что token 12or запросу неизвестен. И далее тоже надо смотреть.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 18:32.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter