Главная страница
    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.48 MB
Время: 0.041 c
3-1155644577
RomanH
2006-08-15 16:22
2006.10.15
Начальное значение генератора


15-1159172429
Ш-К
2006-09-25 12:20
2006.10.15
Поисковый сервис с учетом морфологии (рус.)


1-1155142998
lexander
2006-08-09 21:03
2006.10.15
Вопрос по WebBrowser!!!


6-1148051262
kernel
2006-05-19 19:07
2006.10.15
Противная ошибка


15-1158905403
parasolka
2006-09-22 10:10
2006.10.15
jar архивы.





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский