Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

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

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


Ответ
 
Опции темы
Старый 21.11.2013, 12:09   #11
eval
паяю
 
Регистрация: 29.08.2012
Сообщений: 4,030
Репутация: 422
По умолчанию

соединение с базой у вас одно?
eval вне форума   Ответить с цитированием
Старый 21.11.2013, 12:22   #12
Aleksandr
Участник клуба
 
Регистрация: 22.05.2007
Адрес: Белгородская область
Сообщений: 511
Репутация: 111
По умолчанию

Да с помощью ZConnection
Aleksandr вне форума   Ответить с цитированием
Старый 21.11.2013, 12:34   #13
Аватар
Модератор
Заслуженный модератор
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Адрес: Северодонецк.ua
Сообщений: 17,941
Репутация: 6285
По умолчанию

Скорее всего своё соединение с базой нужно для каждого потока и, соответственно, свой ZConnection. Или синхронизация между потоками с одним ZConnection. Что касается сообщения об ошибке, то AutoCommit отключено, соответственно нужны явные транзакции
__________________
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума   Ответить с цитированием
Старый 21.11.2013, 13:31   #14
Aleksandr
Участник клуба
 
Регистрация: 22.05.2007
Адрес: Белгородская область
Сообщений: 511
Репутация: 111
По умолчанию

Что значит явные транзакции?
А как включить AutoCommit?
В ZConnection AutoCommit стоит в true

Последний раз редактировалось Aleksandr; 21.11.2013 в 13:52.
Aleksandr вне форума   Ответить с цитированием
Старый 21.11.2013, 13:42   #15
Аватар
Модератор
Заслуженный модератор
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Адрес: Северодонецк.ua
Сообщений: 17,941
Репутация: 6285
По умолчанию

Цитата:
Что значит явные транзакции?
То, с чего исходный вопрос и начинался
Цитата:
А как включить AutoCommit
Не знаю этого компонента, видимо в свойствах ZConnection поискать
__________________
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию

Последний раз редактировалось Аватар; 21.11.2013 в 13:53.
Аватар вне форума   Ответить с цитированием
Старый 21.11.2013, 14:38   #16
Aleksandr
Участник клуба
 
Регистрация: 22.05.2007
Адрес: Белгородская область
Сообщений: 511
Репутация: 111
По умолчанию

Вот мой код для 3-й вкладки для остальных подобный. Или это можно как-то по другому реализовать?
Код:

procedure terminal3;
   var str: String;
  S, S1,d1: String;
  s3:real;
  a,b:integer;
  i1,i2: Integer;
  r,m : double;
  i:integer;
  JpegIm: TJpegImage;
  bm: TBitMap;
  d3,d2: TDateTime;
  buf:string;
  v:integer;
 begin
MainForm.IdTCPClient3.Host :=MainForm.labelIP3.Caption;
MainForm.IdTCPClient3.Port := StrToInt(MainForm.LabelPort3.caption);
MainForm.IdTCPClient3.Connect(5000);
MainForm.Memo3.Enabled := True; MainForm.Memo3.Color := clWindow;
MainForm.AddLogWrite('Connect ...... ');
MainForm.RzGlyphStatus4.ImageIndex:=3;
Led0.Brush.Color := clBlue;
try
   repeat
   sleep(5);
   str:=MainForm.IdTCPClient3.Readln();
   if str<>'' then begin
   MainForm.Memo3.Lines.Add(str);
buf:='';
for v:=1 to length(str) do
if str[v] in ['0'..'9', '.', ','] then buf:=buf+str[v];
s1:=buf;
s1:=StringReplace(s1, '.',',' , [rfReplaceAll]);
i1:=Pos(',',s1);
if i1>0 then begin
i2:=PosEx(',',s1,i1+1);
if i2>0 then s1:=Copy(s1,1,i2-1)+Copy(s1,i2+1,Length(s1)-i2);
end;
r:=RoundTo(StrToFloatDef(s1,0),-2);
MainForm.Edit3.Text:=Floattostr(r);
if (r > 0) AND (r <> last_massa) then
begin
MainForm.edtNotes3.Text:=MainForm.edtNotes3.Text+MainForm.Edit3.Text+#9+DateToStr(now) +#9+TimeToStr(now) +#13#10;
if strtofloat(MainForm.Edit3.Text)>strtofloat(OptionForm.RzEdit4.Text) then
begin
sleep(50);
MainForm.ZConnection3.StartTransaction;
try
MainForm.zQuery3.SQL.Clear;
MainForm.zQuery3.SQL.Add ('INSERT INTO base (Date_posting, Time_posting, num, Massa, Name, Image, Com, BaudRate, Organization, Location, IP, Note, Model, Equopment, Linkey, Stable_weight, Image_kamera)' );
MainForm.zQuery3.SQL.Add(' Values (:date1, :date2, 1, :massa, :name,''image'', :port, :BaudRate, :Organization, :Location, :Ip, :Note, :Model, :Equopment, :Linkey, 0, :adress)');
d3:=Trunc(Date);
d2:=frac(time);
MainForm.zQuery3.ParamByName('date1').Value:=d3;
MainForm.zQuery3.ParamByName('date2').Value:=d2;
MainForm.zQuery3.ParamByName('massa').Value:=MainForm.Edit3.Text;
MainForm.zQuery3.ParamByName('name').Value:=MainForm.labelModel3.Caption+' '+MainForm.LabelEquopment3.Caption;
MainForm.zQuery3.ParamByName('port').Value:=MainForm.labelPort3.Caption;
MainForm.zQuery3.ParamByName('BaudRate').Value:=MainForm.LabelBaudRate3.Caption;
MainForm.zQuery3.ParamByName('Organization').Value:=MainForm.LabelOrganization3.Caption;
MainForm.zQuery3.ParamByName('Location').Value:=MainForm.LabelLocation3.Caption;
MainForm.zQuery3.ParamByName('Ip').Value:=MainForm.LabelIp3.Caption;
MainForm.zQuery3.ParamByName('Note').Value:=MainForm.labelNote3.Caption;
MainForm.zQuery3.ParamByName('Model').Value:=MainForm.labelModel3.Caption;
MainForm.zQuery3.ParamByName('Equopment').Value:=MainForm.labelEquopment3.Caption;
MainForm.zQuery3.ParamByName('Linkey').Value:=MainForm.labelLinkey3.Caption;
MainForm.zQuery3.ParamByName('adress').Value:=OptionForm.DirectoryEdit1.Text+'\NO.jpg';
MainForm.zQuery3.ExecSQL;
MainForm.ZConnection3.Commit;
Except
MainForm.ZConnection3.Rollback;
end;
last_massa := r;
     end;
  end;
        until str='';
    finally
    MainForm.Timer5.Enabled:=true;
    end;
 end;

Aleksandr вне форума   Ответить с цитированием
Старый 21.11.2013, 14:44   #17
eval
паяю
 
Регистрация: 29.08.2012
Сообщений: 4,030
Репутация: 422
По умолчанию

и такая партянка для всех вкладок повторяется? ужас
eval вне форума   Ответить с цитированием
Старый 21.11.2013, 14:47   #18
Aleksandr
Участник клуба
 
Регистрация: 22.05.2007
Адрес: Белгородская область
Сообщений: 511
Репутация: 111
По умолчанию

к сожалению да.
Aleksandr вне форума   Ответить с цитированием
Старый 21.11.2013, 17:00   #19
Aleksandr
Участник клуба
 
Регистрация: 22.05.2007
Адрес: Белгородская область
Сообщений: 511
Репутация: 111
По умолчанию

А как можно это реализовать по другому?
Aleksandr вне форума   Ответить с цитированием
Старый 21.11.2013, 17:06   #20
eval
паяю
 
Регистрация: 29.08.2012
Сообщений: 4,030
Репутация: 422
По умолчанию

это все опять в отдельном потоке? разберитесь сначала с потоками
eval вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Транзакция V_a_d БД в Delphi 14 12.11.2012 17:00
write-транзакция в MyDAC 3D Hunter БД в Delphi 7 05.03.2012 14:45


06:59.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru