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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 27.11.2012, 09:34   #1
Фануз
Новичок
Джуниор
 
Регистрация: 27.11.2012
Сообщений: 5
По умолчанию Interbase и Delphi 7

Помогите пожалуйста! При добавлении новой записи в таблицу через Delphi пишет raised exception class eibinterbaseerror with message arithmetic exception, numeric overflow, or string transaction. Че за ошибка и как её решить. Заранее спасибо! Таблицы программа видит, но записать в неё что-либо невозможно. Character set Win1251

Код:
unit UChitateli;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls, DBCtrls, StdCtrls, Mask, DB, IBCustomDataSet, IBTable,
  IBQuery;

type
  TFormChitateli = class(TForm)
    DataSource1: TDataSource;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    Label6: TLabel;
    Label7: TLabel;
    Label8: TLabel;
    DBEdit1: TDBEdit;
    DBEdit2: TDBEdit;
    DBEdit3: TDBEdit;
    DBEdit4: TDBEdit;
    DBEdit5: TDBEdit;
    DBEdit6: TDBEdit;
    DBEdit7: TDBEdit;
    DBEdit8: TDBEdit;
    Button1: TButton;
    DBNavigator1: TDBNavigator;
    IBQuery1: TIBQuery;
    IBQuery2: TIBQuery;
    Button2: TButton;
    IBTable1: TIBTable;
    procedure Button1Click(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure Button2Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  FormChitateli: TFormChitateli;

implementation

uses UDM;

{$R *.dfm}

procedure TFormChitateli.Button1Click(Sender: TObject);
begin
FormChitateli.Close;
end;

procedure TFormChitateli.FormClose(Sender: TObject;
  var Action: TCloseAction);
begin
FormChitateli.IBQuery1.Close;
end;

procedure TFormChitateli.Button2Click(Sender: TObject);
var
a,b,c,d,e,f,g,h:string;
begin
a:=InputBox('Введите данные','Введите код читателя','');
b:=InputBox('Введите данные','Введите фамилию читателя','');
c:=InputBox('Введите данные','Введите имя читателя','');
d:=InputBox('Введите данные','Введите отчество читателя','');
e:=InputBox('Введите данные','Введите год рождения читателя','');
f:=InputBox('Введите данные','Введите адрес читателя','');
g:=InputBox('Введите данные','Введите телефон читателя','');
h:=InputBox('Введите данные','Введите место работы читателя','');
IBQuery2.Params.ParamByName('Num_chit').Value:=a;
IBQuery2.Params.ParamByName('Fam').Value:=b;
IBQuery2.Params.ParamByName('Name').Value:=c;
IBQuery2.Params.ParamByName('Par').Value:=d;
IBQuery2.Params.ParamByName('Year_b').Value:=e;
IBQuery2.Params.ParamByName('Adres').Value:=f;
IBQuery2.Params.ParamByName('Telefon').Value:=g;
IBQuery2.Params.ParamByName('Rabota').Value:=h;
try
IBQuery2.ExecSQL;
except
ShowMessage ('Ошибка при добавления данных!, '+#13+ 'Попробуйте еще раз!');
DM.IBTransaction1.RollbackRetaining;
exit; end;
DM. IBTransaction1.CommitRetaining;
IBQuery1.Close;
IBQuery1.Open;
end;

end.

Последний раз редактировалось artemavd; 27.11.2012 в 15:16.
Фануз вне форума Ответить с цитированием
Старый 27.11.2012, 09:41   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Скорее всего несоответствие вставляемых данных характеристикам полей таблицы. Cообщение именно об этом говорит
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 27.11.2012, 09:46   #3
Фануз
Новичок
Джуниор
 
Регистрация: 27.11.2012
Сообщений: 5
По умолчанию

у меня кодировка в InterBase Win1251
Фануз вне форума Ответить с цитированием
Старый 27.11.2012, 10:17   #4
Фануз
Новичок
Джуниор
 
Регистрация: 27.11.2012
Сообщений: 5
По умолчанию

а как это исправить?
Фануз вне форума Ответить с цитированием
Старый 27.11.2012, 10:34   #5
superedward
Форумчанин
 
Аватар для superedward
 
Регистрация: 27.11.2012
Сообщений: 190
По умолчанию

Цитата:
Сообщение от Фануз Посмотреть сообщение
а как это исправить?
Скорее всего, вы пытаетесь в число (или в дату) запихнуть строку под типом Variant
superedward вне форума Ответить с цитированием
Старый 27.11.2012, 10:36   #6
Фануз
Новичок
Джуниор
 
Регистрация: 27.11.2012
Сообщений: 5
По умолчанию

нет у меня все данные в string
в таблице varchar
Фануз вне форума Ответить с цитированием
Старый 27.11.2012, 10:40   #7
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Возможно в таблице поле к примеру varchar(20), а пытаетесь запихнуть строку длиной 25 символов
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 27.11.2012, 10:44   #8
Фануз
Новичок
Джуниор
 
Регистрация: 27.11.2012
Сообщений: 5
По умолчанию

нет. когда в самой таблице добавляю те же значения она добавляется. а через Delphi никак
Фануз вне форума Ответить с цитированием
Старый 27.11.2012, 10:59   #9
Yurk@
Участник клуба
 
Аватар для Yurk@
 
Регистрация: 19.12.2007
Сообщений: 1,100
По умолчанию

а на INSERT запрос можно взглянуть?
На форуме: Помогаю за спасибо
ICQ\Skype: Это моё личное время ...
Yurk@ вне форума Ответить с цитированием
Старый 27.11.2012, 11:02   #10
BARNEY
Участник клуба
 
Регистрация: 23.04.2009
Сообщений: 1,058
По умолчанию

всё проще... в ibdatabase кодировку выберите win1251
Если вам человек помог, не стесняйтесь говорить спасибо (весы под аватаром)
BARNEY вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Бд interbase+Delphi KingWaR56 Помощь студентам 23 03.12.2011 00:55
БД в Interbase+Delphi KingWaR56 Помощь студентам 3 21.11.2011 21:35
interbase+delphi KiSH333 БД в Delphi 3 15.08.2008 09:53
Delphi и InterBase -2 Edimus БД в Delphi 5 07.11.2007 14:51
Delphi и InterBase Edimus БД в Delphi 12 06.11.2007 14:18