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

Вниз

SQL и TTable   Найти похожие ветки 

 
vodvorezlaya   (2006-09-25 08:31) [0]

Всем доброго времени суток.

Как в SQL(TQuery) обратиться к полю которое является текущим в компоненте TTable?

Т.е. курсор TTable находится например на 100-й записи,
необходимо чтоб эти данные(с 100-й записи) участвовали в запросе к другой таблице только на SQL?

Спасибо.


 
Sergey13 ©   (2006-09-25 08:38) [1]

Осталось определить, с какого конца эта запись 100-я и почему. И еще чем отличается от других.


 
ЮЮ ©   (2006-09-25 08:40) [2]

параметры SQL должны именоваться как поля TTable, а в качестве TQuery.DataSource указать TDataSource, ссылающийся на  TTable


 
vodvorezlaya   (2006-09-25 09:02) [3]


> Осталось определить, с какого конца эта запись 100-я и почему.
>  И еще чем отличается от других.

С начала.

В этой записи 1-й табл. содержится начальная и конечная даты(диапазон), а во 2-й таблице первый столбик содержит дату, необходимо чтоб результатом запроса(на СКУЛЬ) были данные со второй таблици в диапазоне указаном в 100-й записи 1-й таблицы.

Спасибо.


 
ЮЮ ©   (2006-09-25 09:14) [4]


> диапазоне указаном в 100-й записи 1-й таблицы.


И что, пользователь должен cкроллить грид дj 100-й записи, чтобы задать нужный диапазон? Ему проще ручками будет ввести две даты ?

TQuery.SQL.Text :=
 "SELECT * FROM Table WHERE DateField BETWEEN :FirstDate AND :LastDate"

теперь, перед открытием, следует определить параметры запроса.
Можно "ручками" (заполняяя TQuery.Params), а можно "автоматом", используя TQuery.DataSource (см. [2]);


 
Sergey13 ©   (2006-09-25 09:16) [5]

> [3] vodvorezlaya   (25.09.06 09:02)

Диапазон чего либо в запросе задается либо сочетанием условий
>начала AND <конца
либо оператором
between начало AND конец


 
ЮЮ ©   (2006-09-25 09:18) [6]

и не бойся злой, что во дворе. Сходи в ближайший книжный, если закачать учебник неохота :)


 
vodvorezlaya   (2006-09-25 09:31) [7]

Можно ли чисто на SQL обратиться к текущей записи TTable (без переменных).Как?

> TQuery.SQL.Text :=
>  "SELECT * FROM Table WHERE DateField BETWEEN :FirstDate
> AND :LastDate"

Это я понимаю. Но как без переменных прямо на SQL выдрать текущее значение FirstDate и LastDate из другой таблицы.

> параметры SQL должны именоваться как поля TTable, а в качестве
> TQuery.DataSource указать TDataSource, ссылающийся на  TTable

Так и сделал.


 
ЮЮ ©   (2006-09-25 09:45) [8]

>Так и сделал.

И теперь перемещаясь TTable запрос должен пероткрываться и показывать другую выборку. Положи два грида - для TTable и TQuery - и "поползай по первому"


 
vodvorezlaya   (2006-09-25 09:53) [9]


> И теперь перемещаясь TTable запрос должен пероткрываться
> и показывать другую выборку. Положи два грида - для TTable
> и TQuery - и "поползай по первому"

Так и есть, но как передать данные с помощью SQL с текущего 1-го грида?


 
ЮЮ ©   (2006-09-25 09:56) [10]


> а в качестве
> > TQuery.DataSource указать TDataSource, ссылающийся на
>  TTable


 
vodvorezlaya   (2006-09-25 09:59) [11]

SQL.Add(select * from ???)


 
ЮЮ ©   (2006-09-25 10:11) [12]


> SQL.Add(select * from ???)


??? - это вопрос к Нам?

Уже даже сам(а) цитировал(а):
TQuery.SQL.Text :=
"SELECT * FROM <имя таблицы в БД.Извени, я не знаю.Это твои таблицы> WHERE DateField BETWEEN :FirstDate AND :LastDate"

DataSource это свойство компонента TQuery, брошенное тобой на форму. Текст запроса можно написать там же.


 
vodvorezlaya   (2006-09-25 10:15) [13]


> ЮЮ ©   (25.09.06 10:11) [12]

Это-то и нужно. Огромное спасибо.


 
ЮЮ ©   (2006-09-25 10:18) [14]


> Это-то и нужно. Огромное спасибо.


Блин. Ничего нового, чего не сказал в [2] в [12] вроде не появилось :)


 
vodvorezlaya   (2006-09-25 11:48) [15]


> "SELECT * FROM <имя таблицы в БД.Извени, я не знаю.Это твои
> таблицы> WHERE DateField BETWEEN :FirstDate AND :LastDate"

Как здесь вписать две таблици?

DateField он понимает, а FirstDate и LastDate не хочет.


 
ЮЮ ©   (2006-09-25 12:10) [16]


> Как здесь вписать две таблици?

Не нужны здесь две таблицы, а лишь та из клторой ты выбираешь

Как называются поля, задающие период, в первой таблице? Так назови и параметры. Я же не знаю структуры твоих таблиц. Ты же привести их не удосуживаешься


 
vodvorezlaya   (2006-09-25 12:14) [17]

Всем спасибо, задача решена.


 
vodvorezlaya   (2006-09-25 12:31) [18]

А всётаки не работает.

1-я таблица

NomerPlavki, в ней поля nachalo и konec - задают диапазон.

Вторая LHF_Energonositeli, в ней поле DateTime, которое нужно вывести.


 
Desdechado ©   (2006-09-25 17:52) [19]

SQL не работает с наборами данных на клиенте, SQL работает с данными на сервере
Если тебе нужно в Query вытащить что-то, основываясь на данных из другого набора, просто пишешь
Query.SQL.Text := "SELECT * FROM xxx WHERE fld=:param";
Query.ParamByName("param").AsString := Table1.FieldByName( "yyy" ).AsString;
Query.Open;

при желании это можно втолкать в Table1.AfterScroll
получится эдакий вариант мастер-детали



Страницы: 1 вся ветка

Текущий архив: 2006.10.15;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.037 c
11-1134628150
Barloggg
2005-12-15 09:29
2006.10.15
Как сделать зеркало под либу? Ваять новый набор компонент?


1-1157564587
Calibr
2006-09-06 21:43
2006.10.15
Как программно записать ipConfig в файл


11-1135681340
Flea
2005-12-27 14:02
2006.10.15
KOLGets ?


15-1158693219
BreakPoint
2006-09-19 23:13
2006.10.15
Тестирование компонента для Delphi и C++Builder


2-1159378202
berezne
2006-09-27 21:30
2006.10.15
Запуск БД без принтера