С Новым годом! Форум программистов, компьютерный форум, киберфорум
Delphi: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 5.00/11: Рейтинг темы: голосов - 11, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 31.03.2013
Сообщений: 102

Подскажите пожалуйста почему ругается на строчку с параметрами?якобы параметр не найден

14.05.2013, 17:53. Показов 2188. Ответов 36
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
var
  Form5: TForm5;
  nd:TdateTime;
  kd:TdateTime;
 
 
 
implementation
 
{$R *.dfm}
 
procedure TForm5.Button1Click(Sender: TObject);
begin
nd := DateTimePicker1.DateTime;
kd := DateTimePicker2.DateTime;
try
 
  ADOQuery1 .Close; // закрываем запрос
  ADOQuery1.SQL.Clear; // очищаем все что было до этого
  ADOQuery1.SQL.Add('INSERT INTO PTTZSVIAZ(id_TERMINAL)' +
    '(SELECT ID_TERMINAL FROM TPTSVIAZ WHERE datepri BETWEEN :nd AND :kd ');
  ADOQuery1.Parameters.ParamByName('nd').Value := DateTimeToStr(DateTimePicker1.DateTime); // добавляем параметр, в этом случае это имя, строка
  ADOQuery1.Parameters.ParamByName('kd').Value := DateTimeToStr(DateTimePicker2.DateTime);
  ADOQuery1.ExecSQL;
  DBgrid1.Refresh;
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
14.05.2013, 17:53
Ответы с готовыми решениями:

Почему делфи ругается на Allow подскажите пожалуйста
procedure TForm_Users.FormClose(Sender: TObject; var Action: TCloseAction); begin Form_Users.Destroy; end; procedure...

Небольшая ошибка. Смотреть 184 строчку.ругается на }. Пишет unexpected. Почему?
<div id="adm_main"> <? if ($this->part === 'superadmin') { include_once('../admin/classes/db.class.php'); global $db; ...

Подскажите почему ругается на s1
Ругается на s1 не могу понять как это исправить, может ее нужно объявить как переменную, вот только какого типа? void __fastcall...

36
 Аватар для Waddonator
969 / 644 / 97
Регистрация: 01.11.2012
Сообщений: 1,447
14.05.2013, 18:28
Перед присваиванием значений параметрам напишите:
Delphi
1
ADOQuery1.Parameters.Refresh;
И вы некорректно передаете значения параметров: они DateTime, а вы передаете текст.
0
0 / 0 / 0
Регистрация: 31.03.2013
Сообщений: 102
16.05.2013, 10:54  [ТС]
Если вставляю эту строку,он начинает писать missing connection
0
 Аватар для Waddonator
969 / 644 / 97
Регистрация: 01.11.2012
Сообщений: 1,447
16.05.2013, 11:02
попробуйте так
Delphi
1
2
3
4
5
6
7
8
9
Uses DateUtils;
...
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('INSERT INTO PTTZSVIAZ(id_TERMINAL)' +
    '(SELECT ID_TERMINAL FROM TPTSVIAZ WHERE datepri BETWEEN :nd AND :kd ');
ADOQuery1.Parameters.Refresh;
ADOQuery1.Parameters[0].Value := DateOf(DateTimePicker1.DateTime);
ADOQuery1.Parameters[1].Value := DateOf(DateTimePicker2.DateTime);
ADOQuery1.Open;
0
0 / 0 / 0
Регистрация: 31.03.2013
Сообщений: 102
16.05.2013, 11:40  [ТС]
editor на dateof ругается и говорит,что совсем его не знает)
0
 Аватар для Waddonator
969 / 644 / 97
Регистрация: 01.11.2012
Сообщений: 1,447
16.05.2013, 11:41
написано же Uses DateUtils
0
0 / 0 / 0
Регистрация: 31.03.2013
Сообщений: 102
16.05.2013, 11:51  [ТС]
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
procedure TForm5.Button1Click(Sender: TObject);
begin
try
 
 
nd := DateTimePicker1.DateTime;
kd := DateTimePicker2.DateTime;
 
 
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('INSERT INTO PTTZSVIAZ(id_TERMINAL)' +
    '(SELECT ID_TERMINAL FROM TPTSVIAZ WHERE datepri BETWEEN :nd AND :kd ');
ADOQuery1.Parameters.Refresh;
ADOQuery1.Parameters[0].Value := DateOf(DateTimePicker1.DateTime);
ADOQuery1.Parameters[1].Value := DateOf(DateTimePicker2.DateTime);
ADOQuery1.ExecSQL;
 
except
  ShowMessage('Ошибка!');
end;
end;
пробую так,выдает это сообщение об ошибке,которое находится в showmessage
0
 Аватар для Waddonator
969 / 644 / 97
Регистрация: 01.11.2012
Сообщений: 1,447
16.05.2013, 12:01
beck, определите, какая ошибка. Вариантов может быть много.

Добавлено через 1 минуту
У вас, по моему, закрывающей скобки не хватает в тексте sql.
0
0 / 0 / 0
Регистрация: 31.03.2013
Сообщений: 102
16.05.2013, 12:01  [ТС]
ну он просто не выполняет добавление,а там видите в showmessage при условии,что не выполняется запрос выдает сообщение об ошибке,вот его и выдает
0
 Аватар для Waddonator
969 / 644 / 97
Регистрация: 01.11.2012
Сообщений: 1,447
16.05.2013, 12:29
Цитата Сообщение от Waddonator Посмотреть сообщение
определите, какая ошибка. Вариантов может быть много.
Цитата Сообщение от beck Посмотреть сообщение
он просто не выполняет добавление
такой ошибки не существует. И поверьте текст sql на наличие нужных пробелов и скобок.
0
0 / 0 / 0
Регистрация: 31.03.2013
Сообщений: 102
20.05.2013, 12:00  [ТС]
Я уже не знаю,запрос это в IBExpert выполняется нормально,а в делфи никак.просто выскакивает сообщение из showmessage.То бишь запрос не выполняется
0
 Аватар для Waddonator
969 / 644 / 97
Регистрация: 01.11.2012
Сообщений: 1,447
20.05.2013, 12:03
Цитата Сообщение от beck Посмотреть сообщение
просто выскакивает сообщение из showmessage.То бишь запрос не выполняется
А вы уберите Try Exept и узнайте, что за ошибка. Может у вас самой таблицы нет или еще что...
0
0 / 0 / 0
Регистрация: 31.03.2013
Сообщений: 102
20.05.2013, 13:10  [ТС]
в IbExpert все нормально с запросом,все выполняется,а как в Delphi,то выскакивает сообщение из showmessage об ошибке

Добавлено через 1 минуту
То бишь с таблицей все нормально,все имеется
0
 Аватар для Waddonator
969 / 644 / 97
Регистрация: 01.11.2012
Сообщений: 1,447
20.05.2013, 13:17
beck, уже не знаю, как вам дать понять, что "showmessage об ошибке" это не ошибка, это сообщение об исключении чего-либо. Напишите вместо слова "ошибка" слово "мороженное" и говорите, что у вас выскакивает мороженное. И все будут искать мороженное. Ваша "ошибка" - это не ошибка а сочетание символов.
Цитата Сообщение от Waddonator Посмотреть сообщение
уберите Try Exept и узнайте, что за ошибка.
Добавлено через 2 минуты
Delphi
1
2
3
4
5
6
7
8
9
10
procedure TForm5.Button1Click(Sender: TObject);
begin
   ADOQuery1.SQL.Clear;
   ADOQuery1.SQL.Add('INSERT INTO PTTZSVIAZ(id_TERMINAL)' +
     '(SELECT ID_TERMINAL FROM TPTSVIAZ WHERE datepri BETWEEN :nd AND :kd ');
   ADOQuery1.Parameters.Refresh;
   ADOQuery1.Parameters[0].Value := DateOf(DateTimePicker1.DateTime);
   ADOQuery1.Parameters[1].Value := DateOf(DateTimePicker2.DateTime);
   ADOQuery1.ExecSQL;
end;
оставьте только этот код и сообщите наконец, что у вас за ошибка.
0
0 / 0 / 0
Регистрация: 31.03.2013
Сообщений: 102
20.05.2013, 14:12  [ТС]
вставил код,который выше теперь list index out of bounds;
попробовал еще
Delphi
1
2
3
4
5
6
ADOQuery1.Close; // закрываем запрос
    ADOQuery1.SQL.Clear; // очищаем все что было до этого
    ADOQuery1.SQL.Add('INSERT INTO PTTZSVIAZ(id_TERMINAL)' +
       '((SELECT ID_TERMINAL FROM TPTSVIAZ WHERE datepri BETWEEN :nd and :kd))');
ADOQuery1.Prepared := true;ADOQuery1.Parameters.ParamByName('nd').Value := DateTimeToStr(DateTimePicker1.DateTime); добавляем параметр, в этом случае это имя, строка
ADOQuery1.Parameters.ParamByName('kd').Value := DateTimeToStr(DateTimePicker2.DateTime);
тут unkown token line 1,column 35.
0
 Аватар для Waddonator
969 / 644 / 97
Регистрация: 01.11.2012
Сообщений: 1,447
20.05.2013, 15:07
Вместо одной открывающей скобки поставьте пробел:
Delphi
1
2
ADOQuery1.SQL.Add('INSERT INTO PTTZSVIAZ(id_TERMINAL)' +
     ' SELECT ID_TERMINAL FROM TPTSVIAZ WHERE datepri BETWEEN :nd AND :kd');
Добавлено через 1 минуту
И теперь весь код будет выглядеть так:
Delphi
1
2
3
4
5
6
7
8
9
10
procedure TForm5.Button1Click(Sender: TObject);
begin
   ADOQuery1.SQL.Clear;
   ADOQuery1.SQL.Add('INSERT INTO PTTZSVIAZ(id_TERMINAL)' +
     ' SELECT ID_TERMINAL FROM TPTSVIAZ WHERE datepri BETWEEN :nd AND :kd ');
   ADOQuery1.Parameters.Refresh;
   ADOQuery1.Parameters[0].Value := DateOf(DateTimePicker1.DateTime);
   ADOQuery1.Parameters[1].Value := DateOf(DateTimePicker2.DateTime);
   ADOQuery1.ExecSQL;
end;
0
0 / 0 / 0
Регистрация: 31.03.2013
Сообщений: 102
20.05.2013, 15:44  [ТС]
Теперь просто запись в таблицу не добавляется,никаких ошибок не выскакивает
0
 Аватар для Waddonator
969 / 644 / 97
Регистрация: 01.11.2012
Сообщений: 1,447
20.05.2013, 15:49
beck, уже хорошо - программа работает, запрос выполняется. Теперь проверьте саму таблицу на присутствие необходимых данных (может просто нет данных с датами между DateTimePicker1.Date и DateTimePicker2.Date, либо вы поменяли их местами, либо еще что-то).
0
0 / 0 / 0
Регистрация: 31.03.2013
Сообщений: 102
20.05.2013, 16:00  [ТС]
а мне почему-то кажется беда с переменными,что-то тут не так,а данные имеются,я всегда проверяю
0
 Аватар для Waddonator
969 / 644 / 97
Регистрация: 01.11.2012
Сообщений: 1,447
20.05.2013, 16:09
Цитата Сообщение от beck Посмотреть сообщение
а мне почему-то кажется беда с переменными,что-то тут не так,а данные имеются,я всегда проверяю
выполните просто выборку и увидите, что вам запрос возвращает (поставьте вместо переменных какие-либо даты):
SQL
1
SELECT ID_TERMINAL FROM TPTSVIAZ WHERE datepri BETWEEN :nd AND :kd
И еще вопрос: как у вас храниться дата в базе? Как положено DateTime или как текст?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
20.05.2013, 16:09
Помогаю со студенческими работами здесь

Подскажите пожалуйста какой запрос нужен чтобы вывести в одну строчку?
Чтоб было ФИЛЬМ ЕГО ПРОФИ ЖАНРЫ большой побег Хенрик...

Подскажите пожалуйста как в выпадающем списке сделать одну строчку жирной?
Здравствуйте, подскажите пожалуйста как в выпадающем списке сделать предпоследнюю строчку жирной? <option value="Hd1"...

Пожалуйста подскажите как изменить параметр
Пожалуйста подскажите как изменить параметр нейм чар(20) на неймчар(15) при помощи апдейт CREATE TABLE testbase (Name char(20), ...

Подскажите,почему не рисует прямоугольник с заданными параметрами?
Вот само задание: Создать меню с командами Size, Color, Paint, Quit. Команда Paint недоступна. При выборе команды Quit приложение ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути
Programma_Boinc 01.01.2026
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути Сочетание глобально распределённой вычислительной мощности и инновационных. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru