Текущий архив: 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.48 MB
Время: 0.041 c