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

Вниз

нулевой результат запроса   Найти похожие ветки 

 
mari ©   (2003-11-21 10:30) [0]

Извините за глупый вопрос

Query2.Close;
Query2.SQL.Clear;
query2.SQL.Add("select naim from pe where naim=:g");
query2.Params[0].AsString:=gr+" "+nam1+" "+tu;
Query2.Open;

Query2.RecordCount всегда 0, хотя такая строка в таблице точно есть


 
Reindeer Moss Eater ©   (2003-11-21 10:31) [1]

Может и есть, но не подходит к условию Where


 
mari ©   (2003-11-21 10:34) [2]

т.е.? почему не подходит?


 
Reindeer Moss Eater ©   (2003-11-21 10:36) [3]

Потому что рекордкаунт равен нулю.
Если бы подходила, не был бы равен нулю


 
Reindeer Moss Eater ©   (2003-11-21 10:38) [4]

Query2.RecordCount всегда 0, хотя такая строка в таблице точно есть

Какая "такая"?


 
Anatoly Podgoretsky ©   (2003-11-21 10:40) [5]

mari © (21.11.03 10:30)
Выведи в грид, видно или нет?
А RecordCount опасная штука, что бы на нее опираться.
И посмотри чему равен query2.Params[0] после присвоения, то ли что надо или нет.


 
mari ©   (2003-11-21 10:40) [6]

та что равна gr+" "+nam1+" "+tu


 
Плохиш_   (2003-11-21 10:41) [7]

>mari © (21.11.03 10:40) [6]

QuotedStr тебе поможет


 
mari ©   (2003-11-21 10:45) [8]

> Anatoly Podgoretsky © (21.11.03 10:40) [5]

проверила, в гриде ничего нет, а параметр правильный


 
Reindeer Moss Eater ©   (2003-11-21 10:46) [9]

Нет такой записи в таблице.


 
Johnmen ©   (2003-11-21 10:50) [10]

>та что равна gr+" "+nam1+" "+tu

Мы ея не видим, почему-то...:)


 
mari ©   (2003-11-21 10:52) [11]

пробовала Like вместо =, результат тот же :((


 
Reindeer Moss Eater ©   (2003-11-21 10:53) [12]

Скопируй содержимое поля naim в редактор фара.
Скопируй туда же значение gr+" "+nam1+" "+tu

Сравни


 
aVast ©   (2003-11-21 10:59) [13]

to mari
посмею предложить такие варианты:

Query2.Close;
Query2.SQL.Clear;
query2.SQL.Add("select naim from pe where naim="""+gr+" "+nam1+" "+tu+"""");
Query2.Open;


или


Query2.Close;
Query2.SQL.Clear;
query2.SQL.Add("select naim from pe where naim=:g");
query2.Params[0].ParamType:=ptInput;
query2.Params[0].DataType:=ftString;
query2.Params[0].AsString:=gr+" "+nam1+" "+tu;
Query2.Open;


 
Reindeer Moss Eater ©   (2003-11-21 11:01) [14]

Глупости какие.
Нет у нее такой строки в таблице. И все дела.


 
mari ©   (2003-11-21 11:07) [15]


> aVast © (21.11.03 10:59) [13]

не помогло, я в растерянности :((


 
mari ©   (2003-11-21 11:09) [16]


> Reindeer Moss Eater © (21.11.03 11:01) [14]

есть, в конечной таблице получается несколько одинаковых записей


 
Danilka ©   (2003-11-21 11:10) [17]

[15] mari © (21.11.03 11:07)
а ты сделала вот-так:
[12] Reindeer Moss Eater © (21.11.03 10:53)

вместо ФАРа можешь использовать блокнот, и даже ворд :))
чудес на свете не бывает.


 
Danilka ©   (2003-11-21 11:12) [18]

может быть что угодно, начиная от разного регистра, лишнего пробела и заканчивая буквами разного алфавита с по русски и с по-латински.


 
Alex_Bredin ©   (2003-11-21 11:12) [19]

может это поможет?

Query2.Close;
Query2.SQL.Clear;
query2.SQL.Add("select naim from pe where naim=:g");
query2.prepare;
query2.Params[0].AsString:=gr+" "+nam1+" "+tu;
Query2.Open;


 
mari ©   (2003-11-21 11:13) [20]


> Danilka © (21.11.03 11:10) [17]

блокнот предлагает сохранить эту строку в формате юникода, после сравнения файлов результат - идентичны


 
Reindeer Moss Eater ©   (2003-11-21 11:15) [21]

Я же сказал в редакторе ФАРА
И нажать просмотр HEX кодов.

Нету в таблице такой записи. Нету!
Хоть препаре хоть запрепаре. Хоть параметры, хоть QuotedStr.


 
Danilka ©   (2003-11-21 11:15) [22]

[19] Alex_Bredin © (21.11.03 11:12)
не поможет. :))

[20] mari © (21.11.03 11:13)
зачем юникод?
ты можешь написать сюда содержимое gr и tu, а так-же содержимое "правильного" поля naim?


 
mari ©   (2003-11-21 11:18) [23]

выкладываю код, правда, кривой он у меня, так что не очень изевайтесь :(
{переписываем подгруппы в заголовок}
table3.First;
gr:=table3.fieldbyname("pgr").AsString;
while not table3.eof do begin
t2m:=1;
if gr<>"" then begin
Query1.Close;
Query1.SQL.Clear;
query1.SQL.Add("select * from priem where pgr=:g order by poz,poz1");
query1.Params[0].AsString:=gr;
Query1.ExecSQL;
query1.active:=true;
if query1.RecordCount>1 then begin
{ t2m:=query1.RecordCount;}
{проверка на наличие этой записи, если нет, то пишем в таблицу}
typ:=table3.fieldbyname("typ").AsString;
tu:=table3.fieldbyname("tu").AsString;
if (table3.fieldbyname("poz").AsString[1]="C") or (table3.fieldbyname("poz").AsString[1]="R")
then nam1:=table3.fieldbyname("naim").AsString else nam1:="";
table2.Active:=true;
Query2.Close;
Query2.SQL.Clear;
query2.SQL.Add("select naim from pe where naim=:g");
query2.Params[0].AsString:=gr+" "+nam1+" "+tu;
Query2.Open;
if Query2.RecordCount<1 then begin
table2.Insert;
table2.FieldByName("naim").Value:=gr+" "+nam1+" "+tu;
table2.FieldByName("prim").Value:=table3.fieldbyname("prim").AsString;
table3.edit;
table3.fieldbyname("prim").Value:="";
table3.Post;
table2.Post;
end;
end;
end;
table3.Next;
gr:=table3.fieldbyname("pgr").AsString
end;
table2.Insert;
table2.Post;


 
Alex_Bredin ©   (2003-11-21 11:19) [24]

ExecSQL?????????


 
sniknik ©   (2003-11-21 11:24) [25]

сделай такой запрос без параметров
select naim from pe where naim="строковое значение"
вмето - строковое значение скопируй(руками через клипборд) значение поля из таблицы.
если останется по прежнему и в значении есть русские буквы то настраивай правильно лангдрайвер (BDE администратор).


 
mari ©   (2003-11-21 11:24) [26]


> Alex_Bredin © (21.11.03 11:19) [24]


Query2.ExecSQL;
Query2.Activ:=True;

не помогает


 
Alex_Bredin ©   (2003-11-21 11:25) [27]

да я к тому что ExecSQL там не нужен


 
Anatoly Podgoretsky ©   (2003-11-21 11:26) [28]

Query1.ExecSQL применяется только к запросам которые не возвращают записей, а SELECT возвращает


 
Danilka ©   (2003-11-21 11:26) [29]

из приведенного коде непонятно содержимое gr, nam1, tu и naim.
пожалуйста, поставь на строке: " Query2.Open;" точку останова, когда она сработает посмотри значение этих переменных и напиши сюда:
gr = "..."
nam1 = "..."
tu = "..."
затем, из базы скопируй содержимое поля naim и напиши сюда еще одну строчку:
naim = "..."

вместо троеточия - реальные значения, разумеется.
вероятно, ты на пол-пути сама обнаружишь ошибку. :))


 
mari ©   (2003-11-21 11:35) [30]


> sniknik © (21.11.03 11:24) [25]

ручками получилось


> Danilka © (21.11.03 11:26) [29]

у меня инет и программа на разных компах, так что копировать проблематично :))


 
Reindeer Moss Eater ©   (2003-11-21 11:37) [31]

Итак итог:
"Такая" строка не попадает по сформированное программой условие WHERE


 
Danilka ©   (2003-11-21 11:38) [32]

[30] mari © (21.11.03 11:35)
тогда остается только воспользоваться плакатом для снятия стресса:
http://img.lj.com.ua/dashing/stres.jpg

я-же написал методику, по которой ты сама найдешь ошибку. не хочешь - не ищи. :))


 
mari ©   (2003-11-21 11:45) [33]


> Danilka © (21.11.03 11:38) [32]

я запрос переписала как where naim like :g
Query2.Params[0].AsString:=gr;


> Reindeer Moss Eater © (21.11.03 11:37) [31]

почему такое может быть, подскажите чайнику


 
Reindeer Moss Eater ©   (2003-11-21 11:48) [34]

> Reindeer Moss Eater © (21.11.03 11:37) [31]

почему такое может быть, подскажите чайнику


Потому что содержимое поля naim в "Такой" записи отличается от строки заданной в критерии WHERE


 
Danilka ©   (2003-11-21 11:57) [35]

[33] mari © (21.11.03 11:45)
такой запрос точно ничего не вернет.
а вот Query2.Params[0].AsString:=gr+"%";
может-быть. но это не поможет.

ну пожалуйста, сделай так как я написал в [29], можешь даже не писать сюда, скопируй просто в блокнот и посмотри, а то я сам плакатом воспользуюсь. :))



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

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

Наверх




Память: 0.55 MB
Время: 0.016 c
3-36544
3APA3A
2003-11-22 19:09
2003.12.12
BDE Setup


3-36537
mari
2003-11-21 10:30
2003.12.12
нулевой результат запроса


4-36900
destroer
2003-10-16 14:25
2003.12.12
Сбор данных о компьютере


7-36863
Morg
2003-10-05 01:04
2003.12.12
Пичатаем !!!


1-36753
closer
2003-11-28 20:42
2003.12.12
Использование try finally и try except