|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
02.11.2007, 10:26 | #1 |
Пользователь
Регистрация: 30.10.2007
Сообщений: 20
|
Delphi и InterBase
---------------------------
Debugger Exception Notification --------------------------- Project Project1.exe raised exception class EDatabaseError with message 'IBQuery1: Cannot modify a read-only dataset'. Process stopped. Use Step or Run to continue. Не могу понять записать данные в таблицу... подскажиче чего поправить! |
02.11.2007, 18:14 | #2 | |
*
Старожил
Регистрация: 22.11.2006
Сообщений: 9,201
|
Цитата:
Опять надежда на телепатию? |
|
02.11.2007, 21:47 | #3 | |
Старожил
Регистрация: 22.05.2007
Сообщений: 9,065
|
Цитата:
почитай тута: http://ibase.ru/devinfo/ibx.htm |
|
03.11.2007, 22:22 | #4 | |
детский тренер
Форумчанин
Регистрация: 08.06.2007
Сообщений: 532
|
Цитата:
Я злой и страФный серррый воФк, и в пАрАсятах знаю толк - ppp ppp pp p pp pp
|
|
04.11.2007, 20:24 | #5 |
Форумчанин
Регистрация: 28.07.2007
Сообщений: 361
|
IBQuery обычно используется для выполнения запросов не возвращающих набор данных. Для работы с набором данных используйте IBDataset.
|
05.11.2007, 20:43 | #6 | ||
Форумчанин
Регистрация: 04.03.2007
Сообщений: 615
|
Цитата:
вот тебе хранимка Код HTML:
SET TERM ^ ; CREATE OR ALTER PROCEDURE SEL_CONTR returns ( per_id_contr integer, per_fio varchar(100), per_adress varchar(255), per_telefon varchar(100), per_nomer_svid varchar(20), per_skidka integer) as begin for select c.id_contr, c.fio, c.adress, c.telefon, c.nomer_svid, c.skidka from contr c order by c.fio desc into :per_id_contr, :per_fio, :per_adress, :per_telefon, :per_nomer_svid, :per_skidka do suspend; end^ SET TERM ; ^ GRANT SELECT ON CONTR TO PROCEDURE SEL_CONTR; GRANT EXECUTE ON PROCEDURE SEL_CONTR TO SYSDBA; Цитата:
|
||
05.11.2007, 21:21 | #7 | |
Форумчанин
Регистрация: 28.07.2007
Сообщений: 361
|
Цитата:
Пообщайтесь с разработчиками компонент, они вам расскажут что и для чего рекомендуется использовать. |
|
05.11.2007, 21:38 | #8 | ||||
Форумчанин
Регистрация: 04.03.2007
Сообщений: 615
|
Цитата:
просто меня вот это возмутило вообще Цитата:
Цитата:
Цитата:
|
||||
05.11.2007, 21:38 | #9 | ||||
Форумчанин
Регистрация: 04.03.2007
Сообщений: 615
|
Цитата:
просто меня вот это возмутило вообще Цитата:
Цитата:
Цитата:
|
||||
06.11.2007, 09:37 | #10 |
Пользователь
Регистрация: 30.10.2007
Сообщений: 20
|
Эту ошибку исправил... появилась другая!
Project Project1.exe raised exception class EIBInterBaseError with message 'violation of PRIMARY or UNIQUE KEY constraint "INTEG_3" on table "LOG"'. Process stopped. Use Step or Run to continue. вот код: procedure TForm2.Button1Click(Sender: TObject); var f: textfile; s:string; i,j:byte; q,w,n:integer; a:string; begin form1.IBQuery1.Open; assignfile(f,'C:\Documents and Settings\iadrozdov\Рабочий стол\access.log.0'); reset(f); // откроем файл для чтения for w:=1 to 2 do begin //while not eof(f) do begin readln(f,s); // считаем строку memo1.Lines.Append(s); // выведем строку в мемо n:=length(s); // вычислим длину строки q:=1; for j:=1 to n do for i:=1 to n do begin if pos(' ',s)=i then begin //если есть пробел то... a:=copy(s,1,i-1); //скопируем до пробела if q=1 then begin //form1.IBQuery2.Edit; form1.IBQuery2.Params.ParamByName(' DT').Value:=a; form1.IBQuery2.ExecSQL; // form1.IBQuery2.Post; end; if q=2 then begin //form1.IBQuery1.Edit; form1.IBQuery2.Params.ParamByName(' TC').Value:=strtoint(a); form1.IBQuery2.ExecSQL; //form1.IBQuery1.Post; end; if q=3 then begin //form1.IBQuery1.edit; form1.IBQuery2.Params.ParamByName(' ADRK').Value:=a; form1.IBQuery2.ExecSQL; //form1.IBQuery1.Post; end; if q=4 then begin //form1.IBQuery1.edit; form1.IBQuery2.Params.ParamByName(' RP').Value:=a; form1.IBQuery2.ExecSQL; //form1.IBQuery1.Post; end; if q=5 then begin //form1.IBQuery1.edit; form1.IBQuery2.Params.ParamByName(' RAZM').Value:=strtoint(a); form1.IBQuery2.ExecSQL; //form1.IBQuery1.Post; end; if q=6 then begin //form1.IBQuery1.edit; form1.IBQuery2.Params.ParamByName(' SP').Value:=a; form1.IBQuery2.ExecSQL; // form1.IBQuery1.Post; end; if q=7 then begin// form1.IBQuery1.edit; form1.IBQuery2.Params.ParamByName(' URL').Value:=a; form1.IBQuery2.ExecSQL; //form1.IBQuery1.Post; end; if q=8 then begin //form1.IBQuery1.edit; form1.IBQuery2.Params.ParamByName(' LOGIN').Value:=a; form1.IBQuery2.ExecSQL; // form1.IBQuery1.Post; end; if q=9 then begin //form1.IBQuery1.edit; form1.IBQuery2.Params.ParamByName(' TIPR').Value:=a; form1.IBQuery2.ExecSQL; //form1.IBQuery1.Post; end; q:=q+1; delete(s,1,i); //удалим то что скопировали n:=length(s); //вычислим длину строки while(pos(' ',s)=1)and (length(s)>0) do delete (s,1,1); end; end; a:=copy(s,1,i); //скопируем то что осталось if q=10 then begin //form1.IBQuery1.edit; form1.IBQuery2.Params.ParamByName(' VIDR').Value:=a; //form1.IBQuery1.Post; form1.IBQuery1.Append; end; try form1.IBQuery1.ExecSQL; except showmessage('Добавление не получилось!'+#13+'Повторите попытку!'); form1.IBTransaction1.CommitRetainin g; exit; end; form1.IBTransaction1.CommitRetainin g; end; closefile(f); // закроем файл end; |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
interbase+delphi | KiSH333 | БД в Delphi | 3 | 15.08.2008 09:53 |
Си и InterBase | Edimus | Общие вопросы C/C++ | 2 | 23.11.2007 16:32 |
Delphi и InterBase -2 | Edimus | БД в Delphi | 5 | 07.11.2007 14:51 |
Как из Delphi залезть в системный таблицы InterBase | Leee | БД в Delphi | 0 | 21.04.2007 21:04 |
InterBase 6.5 | san4es | БД в Delphi | 0 | 12.12.2006 20:03 |