Модераторы: Akella

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Пытаюсь добавить данные (InterBase) 
:(
    Опции темы
Aydar
Дата 13.6.2011, 13:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Пытаюсь добавить данные (InterBase) через sql выдаёт ошибку
Cannot perform this operation on an open dataset interbase
я уже измучился чесно говоря вот код sql запроса


Код

INSERT INTO SOTRUDNIK
(FAM, IMA, OTCH, ADRES, TEL)
VALUES
(:parFAM, :parIMA, :parOTCH, :parADRES, :parTEL)


вот файлы проекта (база+приложение)
http://www.sendspace.com/file/km2sgf


Это сообщение отредактировал(а) Aydar - 13.6.2011, 13:27
PM MAIL WWW   Вверх
Akella
Дата 13.6.2011, 21:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

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



Моя телепатия подсказывает, что у тебя там вместо ExecSQL, вызывается Open, да?

Добавлено @ 21:50
Мне лень скачивать, покажи код добавления.
PM MAIL   Вверх
Данкинг
Дата 13.6.2011, 21:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


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

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



Нет, в коде там нормально как раз, ошибок лично я не нашёл, хотя проект не запускал.
Код

procedure TFAddSotr.Button1Click(Sender: TObject);
begin
//if caption='Добавить' then
//begin
fmain.IBSAdd.Params.ParamByName('parFAM').Value:=edit1.Text;
fmain.IBSAdd.Params.ParamByName('parIMA').Value:=edit2.Text;
fmain.IBSAdd.Params.ParamByName('parOTCH').Value:=edit3.Text;
fmain.IBSAdd.Params.ParamByName('parADRES').Value:=edit4.Text;
fmain.IBSAdd.Params.ParamByName('parTEL').Value:=edit5.Text;
try
fmain.IBSAdd.ExecSQL;
except
fmain.IBTransaction1.RollbackRetaining;
showmessage ('Ошибка при добавлении');
close;
exit;
end;
fmain.IBTransaction1.CommitRetaining;
fmain.IBSotr.Close;
fmain.IBSotr.open;
//end;
{else
begin
fmain.IBSEdit.Params.ParamByName('parFAM').Value:=edit1.Text;
fmain.IBSEdit.Params.ParamByName('parIMA').Value:=edit2.Text;
fmain.IBSEdit.Params.ParamByName('parOTCH').Value:=edit3.Text;
fmain.IBSEdit.Params.ParamByName('parADRES').Value:=edit4.Text;
fmain.IBSEdit.Params.ParamByName('parTEL').Value:=edit5.Text;
fmain.IBSEdit.Params.ParamByName('parID').value:=fmain.IBSotrSOTRID.Value;
try
fmain.IBSEdit.ExecSQL;
except
fmain.IBTransaction1.RollbackRetaining;
showmessage ('Ошибка при добавлении');
close;
exit;
end;
fmain.IBTransaction1.CommitRetaining;
fmain.IBSotr.Close;
fmain.IBSotr.open;
end;
close;
}




end;





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


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

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



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


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Данкинг
Дата 13.6.2011, 22:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


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

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



Да, действительно, не мешало бы сделать
Код

fmain.IBSAdd.Close;

перед добавлением параметров.

Это сообщение отредактировал(а) Данкинг - 13.6.2011, 22:41


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


Новичок



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

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



Так ?

Код

fmain.IBSAdd.Close;
fmain.IBSAdd.Params.ParamByName('parFAM').Value:=edit1.Text;
fmain.IBSAdd.Params.ParamByName('parIMA').Value:=edit2.Text;
fmain.IBSAdd.Params.ParamByName('parOTCH').Value:=edit3.Text;
fmain.IBSAdd.Params.ParamByName('parADRES').Value:=edit4.Text;
fmain.IBSAdd.Params.ParamByName('parTEL').Value:=edit5.Text;

fmain.IBSAdd.ExecSQL;

{fmain.IBTransaction1.RollbackRetaining;
showmessage ('Ошибка при добавлении');
close;
exit;}

fmain.IBTransaction1.CommitRetaining;
fmain.IBSotr.Close;
fmain.IBSotr.open;


Это сообщение отредактировал(а) Aydar - 14.6.2011, 15:30
PM MAIL WWW   Вверх
Данкинг
Дата 14.6.2011, 15:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


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

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



Цитата(Aydar @  14.6.2011,  16:26 Найти цитируемый пост)
Так ?

Если ошибок нет, то так.


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


Новичок



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

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



ошибок нет но ничего не происходит
PM MAIL WWW   Вверх
Данкинг
Дата 14.6.2011, 21:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


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

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



Цитата(Aydar @  14.6.2011,  18:01 Найти цитируемый пост)
ошибок нет но ничего не происходит 

В таблице данных не появляется, что ли? В IBExpert смотришь?


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


Новичок



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

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



кароче забил я на эти sql, делаю через IBTable1 добавление, поставил дбедитов и делаю доб так

Код

FMain.IBTable1.Append;
FMain.IBTable1.Post;


мне вылетает ошибка SOTRID must have a value, что-то с счетчиком случилось я никак не пойму. Может мне чето с транзакцией сделать?

Это сообщение отредактировал(а) Aydar - 15.6.2011, 16:40
PM MAIL WWW   Вверх
Данкинг
Дата 15.6.2011, 18:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


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

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



Не знаю, я с IB всегда только через запросы работал. 
Цитата(Aydar @  15.6.2011,  17:39 Найти цитируемый пост)
что-то с счетчиком случилось я никак не пойму.

Триггером, что ли? Ну, аналогично не знаю: через запросы всё всегда работало.


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


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

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



Цитата(Aydar @ 15.6.2011,  16:39)
кароче забил я на эти sql, делаю через IBTable1 добавление, поставил дбедитов и делаю доб так

Код

FMain.IBTable1.Append;
FMain.IBTable1.Post;


мне вылетает ошибка SOTRID must have a value, что-то с счетчиком случилось я никак не пойму. Может мне чето с транзакцией сделать?

А ты ничего не забыл?

Текст ошибки трудно перевести?
PM MAIL   Вверх
Aydar
Дата 18.6.2011, 19:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



ребят есть кто сделает за деньги? 
пишите 267-683-881
PM MAIL WWW   Вверх
Akella
Дата 18.6.2011, 19:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

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



обозначь бюджет
PM MAIL   Вверх
Aydar
Дата 18.6.2011, 19:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Вообщем нужно создать простую бд и прил к ней.
firm(1)-(многие)monitor(многие)-city(1)

таблица монитор, атрибуты (monid(счетчик),namem(название),desc(описание),size(размер),price(цена),citykod(вн ключ),firmkod(вн ключ)).
таблица фирма, атрибуты (firmid,namef)
таблица city (cityid,namec).

В прил. должно быть 3 фун-ции (вып с помощью sql)
добавление
изменение
удаление

400-500р
PM MAIL WWW   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Interbase"
Alex

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

1. Версию InterBase (Firebird, Yaffil)

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

  • КАК ПРАВИЛЬНО ОФОРМИТЬ КОД - ЗДЕСЬ
  • КАК ПРАВИЛЬНО УКАЗАТЬ ТЕКСТ ОШИБКИ - ЗДЕСЬ
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • FAQ раздела лежит здесь!

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

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


 




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


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

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