Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.04.2010, 15:55   #21
Dark_Spirit
Форумчанин
 
Аватар для Dark_Spirit
 
Регистрация: 05.02.2009
Сообщений: 324
По умолчанию

о-о-о-о-о-о, хоть до чего-то дошли
а если попробовать избавиться от пераметров и заменить твою процедуру на такой текст:
Код:
   IBQuery1.SQL.Clear;

 IBQuery1.SQL.Text:='INSERT INTO MEROPRIAT(ID_MEROPRIAT,NAME,DAT) VALUES(gen_id(GEN_MEROPRIAT_ID,1), '+quotedstr(edit1.text)+' , '+quotedstr(datetostr(datetimepicker1.date))+')';
IBQuery1.ExecSQL;
Тяжело быть бестолковым.....
Dark_Spirit вне форума Ответить с цитированием
Старый 16.04.2010, 16:27   #22
Domanoff
Форумчанин
 
Регистрация: 05.03.2010
Сообщений: 125
По умолчанию

Цитата:
Сообщение от Dark_Spirit Посмотреть сообщение
о-о-о-о-о-о, хоть до чего-то дошли
а если попробовать избавиться от пераметров и заменить твою процедуру на такой текст:
Код:
   IBQuery1.SQL.Clear;

 IBQuery1.SQL.Text:='INSERT INTO MEROPRIAT(ID_MEROPRIAT,NAME,DAT) VALUES(gen_id(GEN_MEROPRIAT_ID,1), '+quotedstr(edit1.text)+' , '+quotedstr(datetostr(datetimepicker1.date))+')';
IBQuery1.ExecSQL;
вот хоть убей генератор работает а поля не вставляются(ну и с русским проблема тож) вообще ребят отчего я IBQuery1 актив не могу в тру поставить - что значит ошибка empty SQL statement? мне кажется в ней проблема...из зачего еще может не вставляться поля?
пожалейте новичка

Последний раз редактировалось Domanoff; 16.04.2010 в 16:33.
Domanoff вне форума Ответить с цитированием
Старый 16.04.2010, 16:38   #23
Dark_Spirit
Форумчанин
 
Аватар для Dark_Spirit
 
Регистрация: 05.02.2009
Сообщений: 324
По умолчанию

Цитата:
вообще ребят отчего я IBQuery1 актив не могу в тру поставить
млин, ну тебе уже раза 3 объясняли:ТВОЙ ЗАПРОС НА ИЗМЕНЕНИЕ ДАННЫХ В ТАБЛИЦЕ, А НЕ НА ВЫБОРКУ, ПОТОМУ И НЕ МОЖЕШЬ ПОСТАВИТЬ TRUE
менять процедуру пробовал? что выдало, кроме того что ты не можешь запрос поставить в true
Тяжело быть бестолковым.....
Dark_Spirit вне форума Ответить с цитированием
Старый 16.04.2010, 16:39   #24
bezOn
Пользователь
 
Регистрация: 14.04.2010
Сообщений: 51
По умолчанию

Цитата:
Сообщение от Domanoff Посмотреть сообщение
вот хоть убей генератор работает а поля не вставляются(ну и с русским проблема тож) вообще ребят отчего я IBQuery1 актив не могу в тру поставить - что значит ошибка empty SQL statement? мне кажется в ней проблема...


Пипец, скажи пожалуйста, как понимать слова "Ну и с русским проблема тож"... что сие означает???

Второе.
"empty SQL statement" - означает что у обекта IBQuery1 свойство SQL - пустое.

ТРЕТЬЕ
Тебе уже нераз писали, я лично все разжевал.

Если ты пишешь у IBQuery1 в свойстве SQL = "INSERT INTO....", то попробовав активировать его Active = True у тебя ничего не получиться.

ЗАПРОСЫ ТИПА "INSERT INTO...", "UPDATE...", "DELETE..." НУЖНО ВЫПОЛНЯТЬ ЧЕРЕЗ КОМАНДУ
IBQuery1.EXECSQL

может так понятнее будет?

---
Через свойство Active, открываются запросы сожержащие "select * from NameTable"

Последний раз редактировалось bezOn; 16.04.2010 в 16:42.
bezOn вне форума Ответить с цитированием
Старый 16.04.2010, 16:47   #25
Domanoff
Форумчанин
 
Регистрация: 05.03.2010
Сообщений: 125
По умолчанию

да ладно вам все понял! насчет русского - ввожу латинскими буквами все нормально(хоть и один фиг не вставляет), русскими - выдает ошибку , но база нормально настроена , уже вводились до этого русские символы туда
пожалейте новичка
Domanoff вне форума Ответить с цитированием
Старый 16.04.2010, 16:52   #26
Domanoff
Форумчанин
 
Регистрация: 05.03.2010
Сообщений: 125
По умолчанию

Цитата:
Сообщение от Dark_Spirit Посмотреть сообщение
млин, ну тебе уже раза 3 объясняли:ТВОЙ ЗАПРОС НА ИЗМЕНЕНИЕ ДАННЫХ В ТАБЛИЦЕ, А НЕ НА ВЫБОРКУ, ПОТОМУ И НЕ МОЖЕШЬ ПОСТАВИТЬ TRUE
менять процедуру пробовал? что выдало, кроме того что ты не можешь запрос поставить в true
ну когда менял на ваши варианты вроде тож самое(хотя с моим проблем с русским не было)..я не пойму почему раньше все работало, а вот открыл,добавил дату и уже не заполняется(((
пожалейте новичка
Domanoff вне форума Ответить с цитированием
Старый 16.04.2010, 17:01   #27
Dark_Spirit
Форумчанин
 
Аватар для Dark_Spirit
 
Регистрация: 05.02.2009
Сообщений: 324
По умолчанию

Цитата:
ввожу латинскими буквами все нормально(хоть и один фиг не вставляет)
а ты можешь тот запрос что у тебя в программе, немного модифицировав его таким образом:
Код:
INSERT INTO MEROPRIAT(ID_MEROPRIAT,NAME,DAT) VALUES(gen_id(GEN_MEROPRIAT_ID,1), 'Иванов', '16/04/2010')
проверить в SQL Explorer-e
Тяжело быть бестолковым.....
Dark_Spirit вне форума Ответить с цитированием
Старый 16.04.2010, 17:15   #28
bezOn
Пользователь
 
Регистрация: 14.04.2010
Сообщений: 51
По умолчанию

Попробовал счас в деле IBStoredProc1.
И прекрасно вернуло мне сгенерированный новый ID.

Посему добавь на форму этот компонент.
Свяжи его со своим IBDatabase, в свойстве StoredProcName, выбери свой генератор "gen_id";

И вот как должен выглядеть код кнопки, которая сохраняет данные.

Код:
procedure TForm1.btnSaveClick(Sender: TObject);
begin

  TRY
    IBQuery2.SQL.Clear;
    IBQuery2.SQL.ADD('INSERT INTO MEROPRIAT');
    IBQuery2.SQL.ADD('(ID_MEROPRIAT, NAME, DAT)');
    IBQuery2.SQL.ADD('VALUES');
    IBQuery2.SQL.ADD('(:ID, :Name, :Dat)');

       //Заполняем данные;
       IBStoredProc1.ExecProc; {Запускаем генератор} 
       
        IBQuery2.ParamByName('ID').asInteger := IBStoredProc1.ParamByName('GEN_MEROPRIAT_ID').asInteger; {Получаем ID}
        IBQuery2.ParamByName('Name').asString := Edit1.Text;
        IBQuery2.ParamByName('Dat').asDateTime := DateTimePicker1.Date;
  
      IBQuery2.ExecSQL; {Команда, которая выполняет саму вставку}

{Осталось обновить запрос, который показывает содержимое базы "MEROPRIAT"}
      IBQuery1.Close;
      IBQuery1.Open;

  EXCEPT
    Application.MessageBox(
      'Ошибка вставки (создания) новой записи!',
      'Создание отменено', MB_OK+MB_ICONERROR);
  END;

end;
Вот так будет правильно.
По поводу "ввода русских символов", скорее всего у тебя неправильно настроена национальная кодировка.

Незнаю как была создана БД и Таблица, но таблица должна быть объявлена так:

Это пример!
Обрати внимание на национальную символьную кодировку: Win1251 и порядка сортировки символов (collation order): PXW_CYRL
Это важные значения.

----
И самое главное, проверь значение реестра на компутере.
Ключ: HKEY_LOCAL_MACHINE\System\CurrentCo ntrolSet\Control\Nls\Codepage
В параметре 1250 заменить на CP_1251.nls
И 1252 = CP_1251.nls
bezOn вне форума Ответить с цитированием
Старый 16.04.2010, 17:27   #29
Domanoff
Форумчанин
 
Регистрация: 05.03.2010
Сообщений: 125
По умолчанию

сейчас сделал все заново в главном окне - ЗАРАБОТАЛО, потом перенес все тож самое в побочное окно - ОПЯТЬ НЕ АПОЛНЯЕТ (с русским проблема осталось)

Dark_Spirit запрос работает(только с русским опять проблема)

bezOnSET NAMES WIN1251; это все что я нашел в скртпте таблицы по поводу кодировки, тем более оно в таблице уж стоит русскими,это в делфе что то...
насчет всех этих заморочек не в том дело,оно видишь то работает то нет((((( что то с моими руками((((


вот я постоянно в Делфе ее разконективаю чтоб в ибексперте проверить, может с этим что то?

а генератор один блин наращивается!!!!
пожалейте новичка

Последний раз редактировалось Domanoff; 16.04.2010 в 18:10.
Domanoff вне форума Ответить с цитированием
Старый 16.04.2010, 19:08   #30
Domanoff
Форумчанин
 
Регистрация: 05.03.2010
Сообщений: 125
По умолчанию

надоело!!! перепробывал столько ужо, покажите плиз как с ibdataset работать в таком же направлении
пожалейте новичка
Domanoff вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Directx10 ошибка подключения d3dx10.lib mibin Общие вопросы C/C++ 2 20.01.2010 15:33
Ошибка подключения (Interbase+BDE) Andre1723 Помощь студентам 3 27.05.2009 15:11
Ошибка в драйверах после подключения к TV Saladin Операционные системы общие вопросы 3 21.02.2009 21:28
Ошибка после подключения в инет V.N.Ermak Безопасность, Шифрование 3 27.12.2008 19:29
Ошибка подключения к БД CruiserD БД в Delphi 5 26.10.2007 14:42