Форум программистов, компьютерный форум, киберфорум
Delphi: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.89/9: Рейтинг темы: голосов - 9, средняя оценка - 4.89
3 / 3 / 0
Регистрация: 21.05.2016
Сообщений: 304

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

06.02.2018, 10:28. Показов 2202. Ответов 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
5998 / 4573 / 1096
Регистрация: 29.08.2013
Сообщений: 28,248
Записей в блоге: 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
5998 / 4573 / 1096
Регистрация: 29.08.2013
Сообщений: 28,248
Записей в блоге: 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
Ответ Создать тему
Новые блоги и статьи
сукцессия 31: модель микоризы - это модель ещё нескольких явлений, социальных и экономических
anaschu 18.07.2026
Теория «Всего»: апдейт v1. 1. 2 — 28‑мерное ядро стабилизировано Коллеги, фиксирую разбор инженерных правок и их изоморфную проекцию на экономику, меметику и половой отбор. Модель теперь не. . .
сукцессия 30. Массив проверяющих друг друга моделей
anaschu 18.07.2026
Архитектура сети взаимопроверяющих моделей микоризной сукцессии (v2. 0) Развитие тензорного ОДУ-ядра и создание кросс-платформенного калибровочного полигона Уважаемые коллеги! В продолжение. . .
Грибы - это женщины, деревья - это мужчины. Анти инь янь для союза мужчины и женщины.
anaschu 18.07.2026
ГЛАВНЫЙ НАУЧНО-ФИЛОСОФСКИЙ ВЫВОД: Сексуально-Репродуктивный Капитализм против Государства Моногамии Коллеги, мы вышли на финишную прямую 20-мерного ОДУ-моделирования вековой сукцессии (ветка. . .
Текстовый слайдер с нумерацией страниц и кроссбраузерность.
russiannick 18.07.2026
Один мой друг написал текстовый слайдер с нумерацией страниц. Сегодня я расскажу как он умудрился подружить его с кроссбраузерностью. Очевидно сложно угодить с шириной каждому браузеру. Один крадет. . .
Грибы - это мемы, дерево - это человек. Применение микоризной модели к теории меметики Докинза.
anaschu 18.07.2026
Меметический изоморфизм теории «всего»: Грибная сукцессия как модель эволюции идей Докинза Базовый код системы ОДУ микоризной сукцессии описывает не просто биологию, а универсальную. . .
Грибы - это корпорации, деревья - это государства. Механизм массонского захвата власти
anaschu 18.07.2026
Макроэкономический изоморфизм теории «всего»: Грибная сукцессия как модель транснационального капитализма Базовый код системы ОДУ микоризной сукцессии описывает не просто биологию, а. . .
Расчёт периметра прямоугольника по координатам вершин
Maks 18.07.2026
Решение задачи по прикладной информатике средствами 1С. Задача: Вычислить периметр прямоугольника, заданного координатами своих вершин на плоскости. Решение: Создан документ со следующими. . .
Подсчёт частоты трёхбуквенных слов в тексте
Maks 18.07.2026
Решение задачи по прикладной информатике средствами 1С. Задача: Выясните, сколько раз в предложенном тексте встречается каждое трехбуквенное слово. Решение: Создан документ с единственным. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru