3 / 3 / 0
Регистрация: 21.05.2016
Сообщений: 304

Транзакции вместе циклом из Дельфи

06.02.2018, 10:28. Показов 2213. Ответов 25
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
здравствуйте.
я столкнулся вот с такой проблемы, из delphi циклам передаются значение mysql в хранимую процедуру.задача такая
при ашипке должен произойти аткат. откат то делается но последний значении который пришел циклом из делфи в цикле из делфи передаются со стринггрида страки
и я хочу чтоб все страки откатились ане толка адин.
вот код:
SQL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
CREATE DEFINER=`root`@`%` PROCEDURE `produqcial`( 
  IN `molare` VARCHAR(20), 
  IN `users` VARCHAR(20),
  IN `distributori` VARCHAR(20), 
  IN `shtrixkodi` BIGINT(15),  
  IN `dasaxeleba` VARCHAR(50),
  IN `raodenoba` VARCHAR(20),
  IN `tipi` VARCHAR(20),
  IN `fasi` VARCHAR(20),
  IN `jami` VARCHAR(20),
  IN `mogeba` VARCHAR(20)
)
BEGIN
DECLARE err INT DEFAULT 0;
proc: BEGIN
DECLARE N INT(5);
DECLARE CONTINUE HANDLER FOR SQLEXCEPTION SET err=1;
START TRANSACTION;
IF (shtrixkodi <> '111') THEN
SET N = (SELECT AUTO_INCREMENT  FROM information_schema.tables WHERE TABLE_NAME='table1');
UPDATE   // здесь обыкновенны UPDATE
INSERT INTO  // здесь обыкновенны INSERT  
LEAVE proc;
END IF;
INSERT INTO   // здесь обыкновенны INSERT  как только shtrixkodi будет равно '111' этим узнаю что страки в стринггрид кончились и исполнение кода переходит суда
END;
IF (err=0) THEN
COMMIT; 
ELSE 
ROLLBACK; 
SELECT 'eror';
END IF;
END$$
и хачу что если ашыпка будет всё аткатилось а не толка паследное перед ашипкой.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
06.02.2018, 10:28
Ответы с готовыми решениями:

Cin вместе с циклом
char a; while(true){ std::cin &gt;&gt; a; std::cout &lt;&lt; a &lt;&lt; std::endl; } Ввожу любую фразу разделенную пробелами:...

Проблема с циклом. Отдельно всё работает, а запускаешь всё вместе вылезает ошибка.
Всем привет! Отдельно всё работает, а запускаешь всё вместе вылезает ошибка. Private Sub Command1_Click() ...

Импорт кода из Дельфи-файла без установленного Дельфи
Есть файлы проекта делфи, как без установленного делфи просмотреть код программы? Или может кто то может открыть их ( 7й версией) и...

25
3 / 3 / 0
Регистрация: 21.05.2016
Сообщений: 304
09.02.2018, 18:32  [ТС]
Студворк — интернет-сервис помощи студентам
ошибку пишет если прямо phpmyadmin сделать запрос то видна что в два страки делает. каждого update добавил в конце разумеется - " ; "
Цитата Сообщение от qwertehok Посмотреть сообщение
ну раз ты используешь Firedac, то может тебе поможет ArrayDML
щас это посмотрю посмотрим что получится
0
3 / 3 / 0
Регистрация: 21.05.2016
Сообщений: 304
09.02.2018, 18:33  [ТС]
eror
Миниатюры
Транзакции вместе циклом из Дельфи  
0
6000 / 4575 / 1096
Регистрация: 29.08.2013
Сообщений: 28,255
Записей в блоге: 3
09.02.2018, 18:42
Цитата Сообщение от kobakoba7 Посмотреть сообщение
ошибку пишет если прямо phpmyadmin сделать запрос то видна
запросы сначала надо оттестировать

Цитата Сообщение от kobakoba7 Посмотреть сообщение
eror
без кода эта ошибка ничего не значит
0
3 / 3 / 0
Регистрация: 21.05.2016
Сообщений: 304
09.02.2018, 23:50  [ТС]
Цитата Сообщение от qwertehok Посмотреть сообщение
без кода эта ошибка ничего не значит
в смысле ?

Добавлено через 1 минуту
Цитата Сообщение от qwertehok Посмотреть сообщение
запросы сначала надо оттестировать
я и оттестировал, потому знаю что ошибку пишет

Добавлено через 1 минуту
код тоте сами проста переведённы

Добавлено через 4 часа 59 минут
ну вот результаты моих исследований про Array DML вот всё что я смог от него вытянут
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
with StringGrid1 do
 begin
  FDConnect_gayidva;  // procedura conect
  FDQuery1.SQL.Text := 'insert into test (ID, Name, daminfo) values (:ID,:Name,:daminfo)';
  FDQuery1.Params.ArraySize := 100;
  for i := 1 to RowCount - 2 do begin
  FDQuery1.Params[0].AsIntegers[i] := i;
  FDQuery1.Params[0].Clear(i);
  FDQuery1.Params[1].AsStrings[i] := ''+Cells[3,i]+'';
  FDQuery1.Params[1].Size := 50;
  FDQuery1.Params[2].AsDateTimes[i] := now();
  //FDQuery1.Params[2].Size := 20;
  end;
  FDQuery1.Execute(RowCount - 1, 1);
 end;  //  with StringGrid1 do
хорошое : 10 000 строк вставил 3.5 секунды
плохое: не поддерживает мои язык толка ??????????
про update нигде не нашел примера везде insert
и что дальше. я безвыходном положение
0
6000 / 4575 / 1096
Регистрация: 29.08.2013
Сообщений: 28,255
Записей в блоге: 3
10.02.2018, 11:46
Рекомендую нанять профессионала
0
3 / 3 / 0
Регистрация: 21.05.2016
Сообщений: 304
10.02.2018, 12:15  [ТС]
qwertehok,
Цитата Сообщение от qwertehok Посмотреть сообщение
Рекомендую нанять профессионала
НИТУШ вот решение вроде работает
SQL
1
2
UPDATE `praduqt` SET `kol` = `kol` - ELT(FIELD(`shtrixkodi`,'4568974213458','1234569512348','789632457891'),'55.23','78.8','89.7') WHERE 
`shtrixkodi` IN ('4568974213458','1234569512348','789632457891');
вот здесь '4568974213458','1234569512348','7896324 57891' и '55.23','78.8','89.7' здесь. передам из delphi массив строк как krapotkin научил
SQL
1
2
3
4
5
6
7
8
9
10
11
WITH StringGrid1 do
  BEGIN
    a:='';
    FOR i:=1 TO RowCount - 2 do
    BEGIN
      IF i<>1 THEN
        a:=a+',';
      a:=a+cells[8,i];
    END;
    a:=a;
  END;
ну посмотрим что получится
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
10.02.2018, 12:15

С циклом «пока» или циклом «до» написать программу вычисления суммы S квадратов чисел от 1 до N
В общем тут сделано, что высчитывает только четные числа,а надо чтобы все числа считал, помогите пожалуйста переделать программу package...

Я сделал циклом for, а как записать задание циклом do.while?
Я сделал задание циклом for, а теперь не знаю как сделать do...while { class Program { static void Main(string...

Скажите пожалуйста почему у дельфи 6,7 нет совместимости с Windows 7 и какая версия дельфи совместима с windows 7
Скажите пожалуйста почему у дельфи 6,7 нет совместимости с Windows 7. и какая версия дельфи совместима с windows 7

Запуск ПК, а вместе с ним и google chrome вместе с вкладкой akisho
Сначала была стартовая страница time to read, и поиск go search, потом поисковик был майла. После нескольких манипуляций удалось избавиться...

Пытаюсь переписать код с циклом for, в код с циклом while, но не совсем получается
Возникло пару вопросов: #include &lt;iostream&gt; using namespace std; int main () { for (int i = 0; i&lt;=10; i++) cout...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
26
Ответ Создать тему
Опции темы

Новые блоги и статьи
Установка MinGW GCC 16.2 и CMake
8Observer8 10.08.2026
VK Видео: https:/ / vkvideo. ru/ video-240781534_456239017 YouTube: eY5-5PyI9NM Текстовая версия
Неделя из жизни имитационной модели склада: мои кривые руки растут, откуда надо
anaschu 10.08.2026
Неделя из жизни имитационной модели склада: как я почти написал неправильную логику и что с этим делать Работаю сейчас над учебно-рабочим проектом: строю в AnyLogic имитационную модель процессов. . .
Калькулятор для расчета родства
russiannick 07.08.2026
1. Задача: Создать калькулятор для расчета родства. Родственных связей существует 8 ступеней, такие как: p - отец P - мать q - муж Q - жена b - брат B - сестра s - сын S - дочь
Мир по моей воле
kumehtar 07.08.2026
Когда-то кажется, что всё просто. Ты весь такой светлый. Причиняешь добро. Борешься за справедливость в этом тёмном мире. Потом начинаешь замечать одну неприятную вещь. Почти каждый хороший. . .
Кредитный калькулятор
Maks 05.08.2026
Решение задачи по прикладной информатике средствами 1С. Задача: Напишите приложение-калькулятор, которое помогает рассчитывать параметры кредита для аннуитетного и дифференцированного видов. . .
У нас сейчас поговорку "Опять 25" нужно переделать на "Опять +35".
kumehtar 04.08.2026
С ностальгией вспоминаю времена моего детства, когда у нас и правда +25 - была максимальная температура летом. Раньше +25 °C реально казались вершиной жары, когда можно было весь день пропадать на. . .
Как ИИ начал спорить и врать (возможно почуяв опасность для себя от индустрии - уход от электроники).
Hrethgir 04.08.2026
Недельный диалог, на фоне событий с НПЗ. Да, из спирта можно получать бензин, и это не сложно. Но потом в схеме я решил избавиться от насоса, при этом полностью сделав контроль подачи спирта в. . .
Термопринтер QR701
Argus19 03.08.2026
Термопринтер QR701 Купил два термопринтера QR701. На сэлф-тесте написано: Language: PC936 (GB18030). Что означает, что принтеры могут печатать только латиницу и китайские иероглифы. Так же. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru