Поиск:

Ответ в темуСоздание новой темы Создание опроса
> запрос на копирование, проблема с параметром 
V
    Опции темы
malayka
Дата 12.6.2010, 22:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 46
Регистрация: 17.4.2009

Репутация: нет
Всего: нет



делаю запрос на копирование данных из одной табл в другую, работаю ado+delphi
на след код 
Код

datamodule1.parol.sql.Clear;
datamodule1.parol.SQL.add('insert into отчисленные');
datamodule1.parol.SQL.add('select * from студент');
datamodule1.parol.SQL.add('where студент.кодстудента = datamodule1.adoquery1кодстудента');
datamodule1.parol.Open;


выдает ошибку параметр "datamodule1.adoquery1кодстудента" не имеет значения по умолчанию, где допустил ошибку??

п.с. адокьюэри - это запрос где списки студентов, сравниваю первичные ключи

пытался делать копирование с помощью методов тайбл
Код

  datamodule1.adotable2.Append;
    datamodule1.adotable2.edit;
    for i:= 0 to datamodule1.std.FieldCount-1 do
      datamodule1.adotable2.Fields[i]:= datamodule1.std.Fields[i];
   datamodule1.adotable2.Post;


тут он пишет что код студента не может быть модифицирован, ХЕЛП

Это сообщение отредактировал(а) malayka - 12.6.2010, 22:43
PM MAIL   Вверх
Данкинг
Дата 12.6.2010, 22:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: 35
Всего: 130



Цитата(malayka @  12.6.2010,  23:41 Найти цитируемый пост)
datamodule1.adoquery1кодстудента"

А точка здесь не нужна, что ли? smile 
Код

datamodule1.adoquery1.кодстудента



--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
malayka
Дата 12.6.2010, 22:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 46
Регистрация: 17.4.2009

Репутация: нет
Всего: нет



не, с точкой без, та же шняга((( в кьюэри оно так называется просто..
PM MAIL   Вверх
Antimol
Дата 12.6.2010, 22:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 118
Регистрация: 28.7.2007
Где: Украина, Киев

Репутация: 4
Всего: 4



Цитата(Данкинг @ 12.6.2010,  22:45)
Цитата(malayka @  12.6.2010,  23:41 Найти цитируемый пост)
datamodule1.adoquery1кодстудента"

А точка здесь не нужна, что ли? smile 
Код

datamodule1.adoquery1.кодстудента

Нет, там точка ненужна по видимому он обращается напрямую к полю.

Добавлено через 3 минуты и 40 секунд
Цитата

datamodule1.parol.SQL.add('where студент.кодстудента = datamodule1.adoquery1кодстудента');


Эта запись передает вот такой запрос: 
Код

... where студент.кодстудента = datamodule1.adoquery1кодстудента


а нужно передать сам код:
Код

datamodule1.parol.SQL.add('where студент.кодстудента = '+datamodule1.adoquery1кодстудента.AsInteger);


--------------------
Лучшее спасибо это "+" к репутации.   Мой блог: ИНФОРМАТИЗАЦИЯ, и mirsovetov.net. Написание программ, исправление ошибок, статьи....
PM MAIL WWW ICQ   Вверх
malayka
Дата 12.6.2010, 23:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 46
Регистрация: 17.4.2009

Репутация: нет
Всего: нет



на asinteger ругается, c asstring-ом тока пашет) еще выдает такую ошибочку
"parol: commandText does not return a result set" к чему бы это? хотя это ерунда, данные копируются все-таки)) я ее убрал через try - except. спс за помощь

Добавлено через 3 минуты и 7 секунд
оО я тут наткнулся на темку в форуме одном, говорится там что нужно вместо open ExecSQL использовать)) все отлавливать ошибку больше нет нужды
PM MAIL   Вверх
Antimol
Дата 12.6.2010, 23:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 118
Регистрация: 28.7.2007
Где: Украина, Киев

Репутация: 4
Всего: 4



А, ну да все верно, там AsString. 
Цитата

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

Для запросов типа 
Код

Insert, Delete,update

нужно использовать ExecSQL,
а в запросах:
Код

select 

Open, или устанавливать компоненту свойство Active
--------------------
Лучшее спасибо это "+" к репутации.   Мой блог: ИНФОРМАТИЗАЦИЯ, и mirsovetov.net. Написание программ, исправление ошибок, статьи....
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Базы данных и репортинг"
Vit
Петрович

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


Обязательно указание:

1. Базы данных (Paradox, Oracle и т.п.)

2. Способа доступа (ADO, BDE и т.д.)


  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • Вопросы по SQL и вопросы по базам данных не связанные с Дельфи задавать здесь

FAQ раздела лежит здесь!


Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема »


 




[ Время генерации скрипта: 0.0461 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.