Форум: "Базы";
Текущий архив: 2003.06.12;
Скачать: [xml.tar.bz2];
ВнизTQuery.FieldCount Найти похожие ветки
← →
Новачок (2003-05-23 15:55) [0]Всем привет!
Скажите плиз, почему не показывается количество полей?
Var
i: integer;
qr: TQuery;
Begin
... //Здесь выполнился запрос. Там три поля.
i:=qr.Fields.Count;
... //значение i - ноль. ?!
End.
← →
Новачок (2003-05-23 15:57) [1]Извиняюсь за различие между заголовком сообщения и текстом сообщения.
Дело в том, что я пробовал получить количество полей различными способами:
i:=qr.FieldCount;
i:=qr.Fields.Count;
оба варианта показывают ноль.
← →
Johnmen (2003-05-23 16:00) [2]А так i:=qr.FieldCount; ?
← →
Новачок (2003-05-23 16:02) [3]> Johnmen ©
Новачок (23.05.03 15:57)
← →
Johnmen (2003-05-23 16:08) [4]Как выполняется запрос ?
← →
Соловьев (2003-05-23 16:13) [5]
> Новачок (23.05.03 15:55)
а зачем такая задача, когда известно сколько полей?
← →
Новачок (2003-05-23 16:18) [6]> Johnmen
qr.ExecSQL;
← →
Соловьев (2003-05-23 16:21) [7]
> qr.ExecSQL;
прикольно :))) он набор данных не возвращает!!!
Хелп:
procedure ExecSQL;
Description
Call ExecSQL to execute the SQL statement currently assigned to the SQL property. Use ExecSQL to execute queries that do not return a cursor to data (such as INSERT, UPDATE, DELETE, and CREATE TABLE).
← →
fool (2003-05-23 16:23) [8]>Новачок (23.05.03 16:18)
какие же здесь поля, ты же не запрос делаешь
← →
Новачок (2003-05-23 16:23) [9]> Соловьев
Набор данных он возвращает.
← →
Johnmen (2003-05-23 16:24) [10]Надо Open
← →
fool (2003-05-23 16:26) [11]если ты пишешь gr.SQL.Text := "select...";
то пиши gr.Open и получишь FieldCount
иначе, как ты и делаешь qr.ExecSQL но полей не жди
← →
Новачок (2003-05-23 16:29) [12]Странно... ведь сайт называется МАСТЕРА Delphi.
Текст SQL-запроса формируется в зависимости от различных условий.
Формируется именно список полей после оператора select:
declare @CntAllSymb int -- количество всех символов
declare @NumCurrSymb int -- номер текущего символа
declare @CurrSymb int -- текущий символ
declare @SH01 varchar(255)
declare @SH02 varchar(255)
declare @SH03 varchar(255)
declare @SH04 varchar(255)
declare @SH05 varchar(255)
declare @SH06 varchar(255)
declare @SH07 varchar(255)
declare @SH08 varchar(255)
declare @SH09 varchar(255)
declare @SH10 varchar(255)
declare @SH11 varchar(255)
declare @SH12 varchar(255)
declare @SH13 varchar(255)
declare @SG1 varchar(255)
declare @SG2 varchar(255)
declare @ST1 varchar(255)
declare @ST2 varchar(255)
declare @SM varchar(4)
declare @SC varchar(1000)
select @CntAllSymb = (select count(*) from garbage..C_ClnSymb)
select @NumCurrSymb = 0
select @SH01 = "select "
select @SH02 = "case "
select @SH03 = "when CRS.CID = 0 then "Чужой клиент" "
select @SH04 = "else (select CLN.CLN_FNAM "
select @SH05 = " from vicont..CLN CLN "
select @SH06 = " where CLN.CLN_ID = CRS.CID) "
select @SH07 = " end CLNNAME, "
select @SG1 = @SH01+@SH02+@SH03+@SH04+@SH05+@SH06+@SH07
select @SH08 = "case "
select @SH09 = "when CRS.CID = 0 then 99 "
select @SH10 = "else (select CLN.CLN_JP "
select @SH11 = " from vicont..CLN CLN "
select @SH12 = " where CLN.CLN_ID = CRS.CID) "
select @SH13 = " end CLNJP, CRS.CID"
select @SG2 = @SH08+@SH09+@SH10+@SH11+@SH12+@SH13
select @ST1 = " from garbage..C_ClnResSymb CRS"
select @ST2 = " order by 3"
select @SC = ""
while @NumCurrSymb < @CntAllSymb
begin
select @NumCurrSymb=@NumCurrSymb+1
select @CurrSymb = (select CS.SIMB from garbage..C_ClnSymb CS
where CS.ID = @NumCurrSymb)
select @SM = convert(varchar(4), @CurrSymb)
select @SC = @SC+", CRS.S"+@SM
end
execute(@SG1+@SG2+@SC+@ST1+@ST2)
Вот такой текст присваивается свойству qr.SQL
после чего я выполняю запрос qr.ExecSQL.
← →
Новачок (2003-05-23 16:32) [13]>Johnmen © (23.05.03 16:24)
> Надо Open
а если ExecSQL - решений никаких нет?
← →
sniknik (2003-05-23 16:38) [14]Новачок (23.05.03 16:32)
если ExecSQL то рекордсета в кверях просто нет, какие у него тогда поля?
Надо Open
← →
Новачок (2003-05-23 16:42) [15]Вообщем, я думаю, необходимо все запихивать во временную таблицу с помощью ExecSQL, а потом открывать с помощью Open - и получать поля.
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2003.06.12;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.008 c