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

Вниз

SQL   Найти похожие ветки 

 
Pako   (2003-11-25 12:02) [0]

Не могу выполнить Open после выполнения ExecSQl
for i := 0 to BL.Count - 1 do
begin
DM.qrStudentListRX.GotoBookmark(Pointer(BL.Strings[i]));
l:=DM.qrStudentListRX.FieldValues["KodStudent"];
DM.qrStudentListRX.SQL.Clear;
DM.qrStudentListRX.Params.Add;
DM.qrStudentListRX.Params[0].Name:="n";
DM.qrStudentListRX.Params[0].DataType:=ftInteger;
DM.qrStudentListRX.ParamByName("n").AsInteger:=l;
DM.qrStudentListRX.SQL.Add("Delete from "Student.db" WHERE KodStudent=:n ");

if not DM.qrStudentListRX.Prepared then
begin
DM.qrStudentListRX.Close;
DM.qrStudentListRX.Prepare;
DM.qrStudentListRX.ExecSQL;
end;
end;
BL.Free;
DM.qrStudentListRX.SQL.Clear;
DM.qrStudentListRX.SQL.Add(query);
DM.qrStudentListRX.Open;
ошибка: Could not find object


 
Кщд   (2003-11-25 12:08) [1]

а закрыть?


 
Johnmen   (2003-11-25 12:13) [2]

http://delphimaster.net/view/3-1069429720/
Это здесь, рядом...


 
Pako   (2003-11-25 12:44) [3]


> Кщд (25.11.03 12:08) [1]

Перед Clear?
Ошибка таже!Да и если посмотреть "по-шагам" то DM.qrStudentListRX.Active=FAlse после ExecSQL


 
Pako   (2003-11-25 12:46) [4]


> Johnmen © (25.11.03 12:13) [2]
> http://delphimaster.net/view/3-1069429720/
> Это здесь, рядом...

и где там ответ на вопрос? между строк?


 
Кщд   (2003-11-25 13:46) [5]

query=?


 
Pako   (2003-11-25 13:59) [6]


> Кщд (25.11.03 13:46) [5]
> query=?

да, а вас это удивляет например в Watch List пишем
DM.qrStudentListRX.Active и при отладке после выполнения ExecSQL ...Active будет равно фальш


 
Anatoly Podgoretsky   (2003-11-25 14:06) [7]

Не удивляет, а удивляет, что в query?, терра инкогнито.


 
Pako   (2003-11-25 14:45) [8]


> Johnmen © (25.11.03 12:13) [2]
> http://delphimaster.net/view/3-1069429720/
> Это здесь, рядом...

Если правильно понимаю - Johnmen имеет в виду параметры,
но даже если строчку
DM.qrStudentListRX.ParamByName("n").AsInteger:=l; поставить после Add ошибка та же
Хоть кто-нибудь четко ответить может в чем моя ошибка?


 
Danilka   (2003-11-25 14:48) [9]

[8] Pako (25.11.03 14:45)

DM.qrStudentListRX.SQL.Add( query);

чего ты хочешь, у тебя в запросе, который лежит в переменной query целых 4 ошибки!


 
Pako   (2003-11-25 15:17) [10]


> Danilka © (25.11.03 14:48) [9]

а откуда ты заешь что в query?
Если ошибки в delete, то укажи на них


 
Danilka   (2003-11-25 15:22) [11]

[10] Pako (25.11.03 15:17)
>а откуда ты заешь что в query?

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

кстати, о том, какое сообщение об ошибке выскакивает похоже тоже придется с помощью телепатии выяснять.


 
Pako   (2003-11-25 15:32) [12]

текст запроса в этой переменной работает 100%, так как используется во многих др. местах, друг мой, и на "этом месте" не обламывается
для выяснения текста ошибки тебе телепатия не понадобится, внимательнее см. вопрос

> ты-же так и не привел содержимое этой переменой, хотя тебя
> об этом уже и просили и намекали

кто же это просил и намекал, и зачем намекать если можно прямо сказать
а в query вот что
SELECT S.KodStudent, S.Number, F.Surname||" "||N.Name||" "||P.Patronymic As FullName, G.Grup
FROM Student.DB S ,Surname.DB F , Name.DB N, Patronymic.DB P, Grup.DB G
WHERE S.KodSurname=F.KodSurName AND S.KodName=N.KodName AND S.KodPatronymic=P.KodPatronymic AND S.KodGrup=G.KodGrup
И если "обламывается" именно на этом месте, то мне непонятно почему при использовании DM.qrStudentListRX.SQL.Add(query); в других процедурах проходит


 
Serg   (2003-11-25 15:37) [13]

а какой query ты используешь?
попробуй сделать ему Params.Clear перед Open


 
Pako   (2003-11-25 15:39) [14]


> Serg (25.11.03 15:37) [13]

TQueryRX


 
Danilka   (2003-11-25 15:43) [15]

блин, надо-же как я проглядел. тебе еще в [2] Johnmen © (25.11.03 12:13)
ответили :))
просто, сбило с толку: "Не могу выполнить Open после выполнения ExecSQl"

1. попробуй, например, вот-так:
DM.qrStudentListRX.SQL.Clear;
DM.qrStudentListRX.SQL.Add("Delete from "Student.db" WHERE KodStudent=:n ");
DM.qrStudentListRX.Params[0].DataType:=ftInteger;
DM.qrStudentListRX.ParamByName("n").AsInteger:=l;


дело в том, что Add() сам автоматом создаст параметр, если в тексте встретит двоеточие.

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


 
Pako   (2003-11-25 15:46) [16]


> Serg (25.11.03 15:37) [13]

Params.Clear действительно помог:))) как я могла об этом не подумать!!!!
Большое Вам спасибо


 
Serg   (2003-11-25 15:46) [17]

2Danilka © (25.11.03 15:43) [15]
datatype, кстати, можно не присваивать

2Pako
если Clear не поможет, попробуй query.prepare


 
Pako   (2003-11-25 15:48) [18]


> тебе еще в [2] Johnmen © (25.11.03 12:13)
> ответили :))

замечу, там ни слова о Params.Clear


 
Danilka   (2003-11-25 16:43) [19]

[18] Pako (25.11.03 15:48)
потому-что реально у тебя в другом месте ошибка.
почитай документацию, или хелп,там-же вполне понятно написано, что параметры создаются автоматом, ненадо их вручную создавать.

и еще, у тебя когда-нибудь бывает BL.Count больше единицы? честно говоря, сомневаюсь, что по второму разу цикл пройдет без ошибки..



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

Форум: "Базы";
Текущий архив: 2003.12.16;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.01 c
3-52068
chtr
2003-11-25 10:05
2003.12.16
Не удается найти %1


6-52321
NikB
2003-10-15 16:20
2003.12.16
Kak mogu viibrat IP adress tServerSocketa?


14-52375
SageDragon
2003-11-17 17:45
2003.12.16
подскажите аналогичные команды в VСи++


7-52422
Fox-Programmer
2003-10-09 12:15
2003.12.16
Печать в файл


14-52404
mari
2003-11-21 10:50
2003.12.16
не могу войти в чат





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