Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2006.10.15;
Скачать: [xml.tar.bz2];

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.49 MB
Время: 0.041 c
2-1159358066
Fostr
2006-09-27 15:54
2006.10.15
Передать данные из одной формы в другою


2-1159278904
Aleron
2006-09-26 17:55
2006.10.15
Сохранение в файл


4-1148854024
Nickie
2006-05-29 02:07
2006.10.15
Работа с файлами в асинхронном режиме


15-1159162256
Ega23
2006-09-25 09:30
2006.10.15
С Днём рождения! 23 сентября


1-1157349763
lightix
2006-09-04 10:02
2006.10.15
Выводить сообщения из приложения поверх всех окон





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский