Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Delphi Новый топик    Ответить
Топик располагается на нескольких страницах: 1 2 3      [все]
 Проблема при вставке большого количества записей из FB  [new]
WНаталья
Member

Откуда: Мурманск
Сообщений: 68
Имеется БД с овер 15 000 записями в одной таблице (id_студента, фото студента). БД - FireBird.

Нужно таблицу с фото перекопировать в локальную БД (Оракл). Выполняю средствами DELPHI

И вроде как все получается. Но...

при попытках вставки сразу всех записей последовательно я получаю сообщение " Out of memory". Собственно оно и понятно, почему.

1. Как можно вставить все записи? Или поделить количество, допустим на 3, и и вставлять в цикле?
2. Как сделать проверку на дубли? Сейчас поле id_студента, - первичный ключ, но при копировании вставилось несколько сот пустых стотрок, так как видимо, сначала вствляется пустая строка, потом значение.
Если значение уже есть, то возникает исключение "unigue constant", вставка не происходит, но пустая строка остается.
3. Если делить на 3 цикла, то программа после вставки 10 000 завысает. Вероятно, происходят утечки памяти. КАк это проверить избежать?

Вот код вставки
   
FDQuery1.first;
while not (FDQuery1.Eof) do
begin
try

    qGET_PERS_FOTO.Open;
    qGET_PERS_FOTO.Insert;
    qGET_PERS_FOTO.FindField('foto').Assign(FDQuery1.FieldByName('foto'));
    qGET_PERS_FOTO.FindField('pers_id').Assign(FDQuery1.FieldByName('pers_id'));
    qGET_PERS_FOTO.Post;
    FDQuery1.Next;

    Except
     On e: Exception Do
     begin
       if Pos('unique constraint', e.Message)> 0 then
       begin
         FDQuery1.Next;
      end;
     end;
end;
15 фев 21, 15:39    [22281189]     Ответить | Цитировать Сообщить модератору
 Re: Проблема при вставке большого количества записей из FB  [new]
Мимопроходящий
Member

Откуда: бурятский тундрюк, эсквайр
Сообщений: 31969

15.02.2021 15:39, WНаталья пишет:
> при попытках вставки сразу всех записей последовательно я получаю сообщение " Out of memory".
> Собственно оно и понятно, почему.

почему?

Posted via ActualForum NNTP Server 1.5

15 фев 21, 15:42    [22281191]     Ответить | Цитировать Сообщить модератору
 Re: Проблема при вставке большого количества записей из FB  [new]
_Vasilisk_
Member

Откуда: Украина, Харьков
Сообщений: 12572
WНаталья
Как можно вставить все записи
Заменить TFDQuery на TFDCommand
WНаталья
так как видимо, сначала вствляется пустая строка,
Нет
WНаталья
то возникает исключение "unigue constant"
Если такое ограничение есть на базе и если текст ошибки звучит именно так
WНаталья
то программа после вставки 10 000 завысает
Само собой. Вы же так и написали
WНаталья
// Пока не достигли конца датасета, крутим цикл
while not (FDQuery1.Eof) do 
begin
  try
    // Зачем-то в цикле каждый раз пытаемся открыть датасет
    qGET_PERS_FOTO.Open;  
    qGET_PERS_FOTO.Insert;
    // на каждую итерацию цикла делаем поиск полей
    qGET_PERS_FOTO.FindField('foto').Assign(FDQuery1.FieldByName('foto'));
    qGET_PERS_FOTO.FindField('pers_id').Assign(FDQuery1.FieldByName('pers_id'));
    qGET_PERS_FOTO.Post;
    FDQuery1.Next;
  Except
     On e: Exception Do
     begin
       // Если текст сообщения содержит 'unique constraint' (именно в таком написании)
       if Pos('unique constraint', e.Message)> 0 then
       begin
         // то перейти на следующую запись
         FDQuery1.Next;
      end;
      // А если не содержит, то остаться на текущей и повторить вставку
     end;
end;


И покажите DDL таблиц
15 фев 21, 15:59    [22281201]     Ответить | Цитировать Сообщить модератору
 Re: Проблема при вставке большого количества записей из FB  [new]
ъъъъъ
Member

Откуда:
Сообщений: 1770
WНаталья
при попытках вставки сразу всех записей последовательно я получаю сообщение " Out of memory". Собственно оно и понятно, почему.

Не используй датасет, вот и всё.
15 фев 21, 16:11    [22281209]     Ответить | Цитировать Сообщить модератору
 Re: Проблема при вставке большого количества записей из FB  [new]
WНаталья
Member

Откуда: Мурманск
Сообщений: 68
_Vasilisk_,
прошу прощения, новичок в этом всем. Пытаюсь разобраться.
Что такое dll таблицы?
15 фев 21, 16:39    [22281234]     Ответить | Цитировать Сообщить модератору
 Re: Проблема при вставке большого количества записей из FB  [new]
WНаталья
Member

Откуда: Мурманск
Сообщений: 68
_Vasilisk_,
не очень понимаю, как использовать TFDCommand.

Допустим, написала я внутри компонента запрос на выборку всех записей.
А дальше как использовать его при вставке ?
15 фев 21, 16:51    [22281239]     Ответить | Цитировать Сообщить модератору
 Re: Проблема при вставке большого количества записей из FB  [new]
Гаджимурадов Рустам
Member

Откуда:
Сообщений: 62404
WНаталья> Нужно таблицу с фото перекопировать в локальную БД (Оракл).

А что такое локальная БД?

> Или поделить количество, допустим на 3, и и вставлять в цикле?

Не надо делить на 3. Вставляйте по 1 записи,
потом сделаете коммит для всей пачки.
Для Вашего уровня знаний и разовой задачи этого хватит.

> 2. ... при копировании вставилось несколько сот пустых стотрок,

Удалите их.

> так как видимо, сначала вствляется пустая строка, потом значение.

Нет, Оракл такой фигнёй не страдает.

Posted via ActualForum NNTP Server 1.5

15 фев 21, 17:11    [22281256]     Ответить | Цитировать Сообщить модератору
 Re: Проблема при вставке большого количества записей из FB  [new]
wadman
Member

Откуда: Санкт-Петербург
Сообщений: 26952
WНаталья
И вроде как все получается. Но...

1. Нужно перейти на query.
2. Вставку делать во временную таблицу, на которой нет никаких триггеров, ограничений и индексов.
3. После заполнения п.2 - вызвать процедуру на сервере (придется её написать), которая сделает остальную работу (проверит и перекинет в нормальную таблицу).
15 фев 21, 17:15    [22281259]     Ответить | Цитировать Сообщить модератору
 Re: Проблема при вставке большого количества записей из FB  [new]
MaratIsk
Member

Откуда: Almaty, Kazakhstan
Сообщений: 2556
WНаталья,
грузишь всю таблицу в память, а надо использовать unidirectional
15 фев 21, 17:20    [22281261]     Ответить | Цитировать Сообщить модератору
 Re: Проблема при вставке большого количества записей из FB  [new]
Gerasimenko
Member

Откуда:
Сообщений: 4643
Неужели Firebird не линкуется к Oracle?
Если линкуется, то дельфи нафиг не нужен.
15 фев 21, 17:46    [22281277]     Ответить | Цитировать Сообщить модератору
 Re: Проблема при вставке большого количества записей из FB  [new]
Гаджимурадов Рустам
Member

Откуда:
Сообщений: 62404
Через ODBC/JDBC линкуется, конечно.

Posted via ActualForum NNTP Server 1.5

15 фев 21, 18:14    [22281302]     Ответить | Цитировать Сообщить модератору
 Re: Проблема при вставке большого количества записей из FB  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 52445

Гаджимурадов Рустам
Через ODBC/JDBC линкуется, конечно.

Но не работает с блобами. Посмотрите уже топики аффтарши.

Posted via ActualForum NNTP Server 1.5

15 фев 21, 18:48    [22281314]     Ответить | Цитировать Сообщить модератору
 Re: Проблема при вставке большого количества записей из FB  [new]
WНаталья
Member

Откуда: Мурманск
Сообщений: 68
Dimitry Sibiryakov,

да, не линкуется.

Оракрл воспринимает блоб как лонг раф и режет его до 32к. (если коротко)

Сообщение было отредактировано: 15 фев 21, 19:39
15 фев 21, 19:46    [22281337]     Ответить | Цитировать Сообщить модератору
 Re: Проблема при вставке большого количества записей из FB  [new]
MaratIsk
Member

Откуда: Almaty, Kazakhstan
Сообщений: 2556
WНаталья,
тебе не знакомо свойство unidirectional ?

Сообщение было отредактировано: 15 фев 21, 19:53
15 фев 21, 19:51    [22281338]     Ответить | Цитировать Сообщить модератору
 Re: Проблема при вставке большого количества записей из FB  [new]
defecator
Member

Откуда:
Сообщений: 39683
WНаталья
Dimitry Sibiryakov,

да, не линкуется.

Оракрл воспринимает блоб как лонг раф и режет его до 32к. (если коротко)

так это не оракел виноват, а дрова ODBC
15 фев 21, 19:53    [22281341]     Ответить | Цитировать Сообщить модератору
 Re: Проблема при вставке большого количества записей из FB  [new]
WНаталья
Member

Откуда: Мурманск
Сообщений: 68
MaratIsk,

к сожалению нет, не знакомо
15 фев 21, 19:54    [22281342]     Ответить | Цитировать Сообщить модератору
 Re: Проблема при вставке большого количества записей из FB  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 52445

defecator
так это не оракел виноват, а дрова ODBC

Правда? Какой тип данных должен вернуть драйвер чтобы Oracle HS воспринял его как BLOB?
SQL_LONGVARBINARY не канает.

Posted via ActualForum NNTP Server 1.5

15 фев 21, 20:04    [22281345]     Ответить | Цитировать Сообщить модератору
 Re: Проблема при вставке большого количества записей из FB  [new]
MaratIsk
Member

Откуда: Almaty, Kazakhstan
Сообщений: 2556
WНаталья
MaratIsk,

к сожалению нет, не знакомо


к предыдущему сообщению приаттачил файл

unidirectional - это свойство query создающее однонаправленный набор
указываешь UniDirectional := TRUE; и бежишь по набору, формируя insert для целевой бд
out of memory не будет, потому что такой запрос не буферизует все записи в памяти, а только текущую запись
15 фев 21, 20:08    [22281349]     Ответить | Цитировать Сообщить модератору
 Re: Проблема при вставке большого количества записей из FB  [new]
defecator
Member

Откуда:
Сообщений: 39683
Dimitry Sibiryakov
defecator
так это не оракел виноват, а дрова ODBC

Правда? Какой тип данных должен вернуть драйвер чтобы Oracle HS воспринял его как BLOB?
SQL_LONGVARBINARY не канает.

а чойта не канает ?
SQL_BINARY тоже побоку ?

Сообщение было отредактировано: 15 фев 21, 20:11
15 фев 21, 20:16    [22281353]     Ответить | Цитировать Сообщить модератору
 Re: Проблема при вставке большого количества записей из FB  [new]
WНаталья
Member

Откуда: Мурманск
Сообщений: 68
MaratIsk,

не вижу у компонента такого свойства.

Для ADO есть, а для FireDac - нет

К сообщению приложен файл. Размер - 6Kb
15 фев 21, 21:09    [22281376]     Ответить | Цитировать Сообщить модератору
 Re: Проблема при вставке большого количества записей из FB  [new]
MaratIsk
Member

Откуда: Almaty, Kazakhstan
Сообщений: 2556
WНаталья
MaratIsk,

не вижу у компонента такого свойства.

Для ADO есть, а для FireDac - нет


выбрось FireDac - для столь простой задачи как перекачка данных достаточно
IBDatabase, IBCustomDataSet, IBQuery
15 фев 21, 21:13    [22281378]     Ответить | Цитировать Сообщить модератору
 Re: Проблема при вставке большого количества записей из FB  [new]
WНаталья
Member

Откуда: Мурманск
Сообщений: 68
MaratIsk,
IBDatabase в моем случае не вариант. при коннекте к БД получаю ошибку типа "структура БД не поддерживается".
15 фев 21, 21:29    [22281381]     Ответить | Цитировать Сообщить модератору
 Re: Проблема при вставке большого количества записей из FB  [new]
MaratIsk
Member

Откуда: Almaty, Kazakhstan
Сообщений: 2556
WНаталья,
вариант-вариант :)
какая версия у сервера ФБ ?
15 фев 21, 21:36    [22281383]     Ответить | Цитировать Сообщить модератору
 Re: Проблема при вставке большого количества записей из FB  [new]
WНаталья
Member

Откуда: Мурманск
Сообщений: 68
MaratIsk,


3.0
15 фев 21, 21:40    [22281384]     Ответить | Цитировать Сообщить модератору
 Re: Проблема при вставке большого количества записей из FB  [new]
MaratIsk
Member

Откуда: Almaty, Kazakhstan
Сообщений: 2556
WНаталья,
значит надо подключить fbclient.dll 3-ей версии только и всего
т.е. положить рядом с приложением
15 фев 21, 21:44    [22281386]     Ответить | Цитировать Сообщить модератору
 Re: Проблема при вставке большого количества записей из FB  [new]
WНаталья
Member

Откуда: Мурманск
Сообщений: 68
MaratIsk,

вернулась, к тому, с чего начала.
не могу подружить интербейсовкие компоненты с FB.

FireDac - работают, поэтому и остановилась на них...

К сообщению приложен файл. Размер - 32Kb


Сообщение было отредактировано: 15 фев 21, 22:38
15 фев 21, 22:42    [22281396]     Ответить | Цитировать Сообщить модератору
 Re: Проблема при вставке большого количества записей из FB  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 52445

defecator
а чойта не канает ?

Ну почитай же топики, он Оракулом воспринимается как LONG RAW со всеми вытекающими
последствиями.

defecator
SQL_BINARY тоже побоку ?

Будет просто RAW с ещё более вытекающими последствиями.

Posted via ActualForum NNTP Server 1.5

15 фев 21, 23:06    [22281400]     Ответить | Цитировать Сообщить модератору
 Re: Проблема при вставке большого количества записей из FB  [new]
Cobalt747
Member

Откуда:
Сообщений: 2281
WНаталья,

Оставьте FireDac https://blogs.embarcadero.com/using-firedac-unidirectional-property-for-fast-low-memory-selection-set-processing/

и научитесь гуглить
16 фев 21, 12:49    [22281542]     Ответить | Цитировать Сообщить модератору
 Re: Проблема при вставке большого количества записей из FB  [new]
MaratIsk
Member

Откуда: Almaty, Kazakhstan
Сообщений: 2556
WНаталья
MaratIsk,

вернулась, к тому, с чего начала.
не могу подружить интербейсовкие компоненты с FB.

FireDac - работают, поэтому и остановилась на них...


подожди! ты же к серверу подключаешься. так?
тогда при чем unsupported on-disk structure ?!
16 фев 21, 15:27    [22281670]     Ответить | Цитировать Сообщить модератору
 Re: Проблема при вставке большого количества записей из FB  [new]
kdv
Member

Откуда: iBase.ru
Сообщений: 29547
WНаталья
при коннекте к БД получаю ошибку типа "структура БД не поддерживается".

врёте вы всё. вы ведь уже решили эту "проблему". И вообще, намешали ФБ и ИБ, и теперь "проблема"...
16 фев 21, 15:30    [22281672]     Ответить | Цитировать Сообщить модератору
 Re: Проблема при вставке большого количества записей из FB  [new]
kdv
Member

Откуда: iBase.ru
Сообщений: 29547
WНаталья,

могу ошибаться, но судя по сообщениям история такая
- кто-то где-то спёр базу Firebird.
- дали вам задание откопировать её в Оракл
- вы не понимая, какой версии нужен Firebird поставили абы что. Вероятно, для получения gds32.dll для компонент IBX поставили еще и InterBase.
- получаете "unsupported on-disk structure".
Ссылку на список форматов и версий ИБ и ФБ я вам уже дал. Казалось бы - ставим Firebird нужной для БД версии, генерируем через instclient требуемый gds32.dll.
И всё.
16 фев 21, 15:34    [22281675]     Ответить | Цитировать Сообщить модератору
 Re: Проблема при вставке большого количества записей из FB  [new]
Мимопроходящий
Member

Откуда: бурятский тундрюк, эсквайр
Сообщений: 31969

16.02.2021 15:34, kdv пишет:
> И всё.

нет, не всё.
тут программист нужен. ©

Posted via ActualForum NNTP Server 1.5

16 фев 21, 15:37    [22281676]     Ответить | Цитировать Сообщить модератору
 Re: Проблема при вставке большого количества записей из FB  [new]
Ivan_Pisarevsky
Member

Откуда: НН
Сообщений: 8716
kdv
WНаталья
при коннекте к БД получаю ошибку типа "структура БД не поддерживается".

врёте вы всё. вы ведь уже решили эту "проблему". И вообще, намешали ФБ и ИБ, и теперь "проблема"...
Все "поциэнты" врут, природа такая. :)

MaratIsk
подожди! ты же к серверу подключаешься. так?
тогда при чем unsupported on-disk structure ?!
Это мы уже пытались объяснить, толку пока нет. :)

Еще раз медленно: где-то на диске Цэ валяется либа gds32.dll от интербейза ее надо пристрелить вместе с сервером интербейз, он тут реально не нужен, более того, мешает.
Далее запустить штатный инсталлятор файрберд 3.0.7 выставить там галку "сгенерировать gds32", жмакнуть требуемое число раз пипку "далее" и "готово".
16 фев 21, 15:40    [22281678]     Ответить | Цитировать Сообщить модератору
 Re: Проблема при вставке большого количества записей из FB  [new]
s62
Member

Откуда: Жуковский
Сообщений: 1255
Я так понял, что ТС смогла подключиться при помощи FireDac (сообщение 1), но не смогла через IBX, который ей тут посоветовали. 22281378

Ну и пусть бы пользовалась FireDac, зачем мешать одно и другое.
16 фев 21, 16:19    [22281699]     Ответить | Цитировать Сообщить модератору
 Re: Проблема при вставке большого количества записей из FB  [new]
kdv
Member

Откуда: iBase.ru
Сообщений: 29547
Ivan_Pisarevsky,

gds32.dll "не той системы" не может быть причиной unsupported on-disk structure, ты же знаешь.
16 фев 21, 16:22    [22281701]     Ответить | Цитировать Сообщить модератору
 Re: Проблема при вставке большого количества записей из FB  [new]
Мимопроходящий
Member

Откуда: бурятский тундрюк, эсквайр
Сообщений: 31969

16.02.2021 16:22, kdv пишет:
> gds32.dll "не той системы" не может быть причиной unsupported on-disk structure, ты же знаешь.

при установленных одновременно Interbase и Firebird - вполне.
да ещё и при неизвестной строке коннекта.

Posted via ActualForum NNTP Server 1.5

16 фев 21, 16:27    [22281705]     Ответить | Цитировать Сообщить модератору
 Re: Проблема при вставке большого количества записей из FB  [new]
MaratIsk
Member

Откуда: Almaty, Kazakhstan
Сообщений: 2556
у ТС проблема с большими наборами данных unsupported on-disk structure
а с маленькими значит нет ?!

случай тяжелый
16 фев 21, 16:31    [22281712]     Ответить | Цитировать Сообщить модератору
 Re: Проблема при вставке большого количества записей из FB  [new]
WНаталья
Member

Откуда: Мурманск
Сообщений: 68
kdv,

я удалила нахрен все библиотеки gds32.dll и fbclient.dll.

Затем установила FB 3.0.
Проверила через ISQl коннектится ли к БД.

Далее скопировала библиотеку в папке с программой и явно указала VendorLib.

В FDQuery написала запрос.

Но даже при попытке вывести кол-во записей , получаю Out of Memory.

Вопрос не почему я не использую интербейсовкие компоненты, не про то почему не использую линк...

А про то, как с помощью средствами FireDac избежать этой ошибки. Если есть конечно, такой способ...
16 фев 21, 17:09    [22281733]     Ответить | Цитировать Сообщить модератору
 Re: Проблема при вставке большого количества записей из FB  [new]
WНаталья
Member

Откуда: Мурманск
Сообщений: 68
kdv
WНаталья,
генерируем через instclient требуемый gds32.dll.
.


про это не знала. Попробую.Спасибо
16 фев 21, 17:11    [22281735]     Ответить | Цитировать Сообщить модератору
 Re: Проблема при вставке большого количества записей из FB  [new]
Гаджимурадов Рустам
Member

Откуда:
Сообщений: 62404
WНаталья> В FDQuery написала запрос.
>
> Но даже при попытке вывести кол-во записей , получаю Out of Memory.

Ну так показывайте, что именно делаете, какой запрос, какие настройки.

Posted via ActualForum NNTP Server 1.5

16 фев 21, 17:11    [22281736]     Ответить | Цитировать Сообщить модератору
 Re: Проблема при вставке большого количества записей из FB  [new]
ъъъъъ
Member

Откуда:
Сообщений: 1770
Гаджимурадов Рустам,

В первом сообщении - используется TFDQuery - это потомок TDataSet, через него выполняется вставка, все данные остаются в памяти - вот и аут оф мем.
16 фев 21, 17:15    [22281743]     Ответить | Цитировать Сообщить модератору
 Re: Проблема при вставке большого количества записей из FB  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 52445

WНаталья
А про то, как с помощью средствами FireDac избежать этой ошибки. Если есть конечно, такой
способ...

Вам уже несколько раз сказали не использовать компонент, кэширующий принятые записи в
памяти, и даже ткнули пальцем в свойство Unidirectional. Сколько ещё раз надо это всё
повторить чтобы до Вас дошло?

Posted via ActualForum NNTP Server 1.5

16 фев 21, 17:20    [22281749]     Ответить | Цитировать Сообщить модератору
 Re: Проблема при вставке большого количества записей из FB  [new]
Гаджимурадов Рустам
Member

Откуда:
Сообщений: 62404
Тогда см. уже несколько раз упомянутый UniDirectional.
И даже с датасетом-а-ля-FDQuery можно было уже 10
раз догадаться использовать ограничение выборки...

P.S. Как там out-of-memory можно было словить?
15000 БЛОБов одновременно в памяти держать что ли?

Posted via ActualForum NNTP Server 1.5

16 фев 21, 17:38    [22281761]     Ответить | Цитировать Сообщить модератору
 Re: Проблема при вставке большого количества записей из FB  [new]
WНаталья
Member

Откуда: Мурманск
Сообщений: 68
Dimitry Sibiryakov,

а вы пробовали найти у TFDQuery Unidirectional ?? его там нет.

И да, я делаю ограничение выборки, например, первые 100. Но даже это не помогает.
16 фев 21, 18:40    [22281820]     Ответить | Цитировать Сообщить модератору
 Re: Проблема при вставке большого количества записей из FB  [new]
WНаталья
Member

Откуда: Мурманск
Сообщений: 68
Вернее помогает, но ненадолго.
16 фев 21, 18:41    [22281822]     Ответить | Цитировать Сообщить модератору
 Re: Проблема при вставке большого количества записей из FB  [new]
Мимопроходящий
Member

Откуда: бурятский тундрюк, эсквайр
Сообщений: 31969

16.02.2021 18:40, WНаталья пишет:
> а вы пробовали найти у TFDQuery Unidirectional ?? его там нет.

да ладно!

http://docwiki.embarcadero.com/RADStudio/Seattle/en/Fetching_and_Populating_Questions_(FireDAC)

Posted via ActualForum NNTP Server 1.5

16 фев 21, 18:45    [22281829]     Ответить | Цитировать Сообщить модератору
 Re: Проблема при вставке большого количества записей из FB  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 52445

WНаталья
а вы пробовали найти у TFDQuery Unidirectional ?? его там нет.

Гугль способен найти даже то, чего нет.
https://blogs.embarcadero.com/using-firedac-unidirectional-property-for-fast-low-memory-selection-set-processing/

Posted via ActualForum NNTP Server 1.5

16 фев 21, 18:45    [22281830]     Ответить | Цитировать Сообщить модератору
 Re: Проблема при вставке большого количества записей из FB  [new]
Гаджимурадов Рустам
Member

Откуда:
Сообщений: 62404
WНаталья> И да, я делаю ограничение выборки,
WНаталья> например, первые 100. Но даже это не помогает.

Код показывай.


WНаталья> Вернее помогает, но ненадолго.

А потом - ррррраз - и всё?
Ты программистка или как?
Память освобождаешь или
каждый раз новую выделяешь?

Posted via ActualForum NNTP Server 1.5

16 фев 21, 18:47    [22281832]     Ответить | Цитировать Сообщить модератору
 Re: Проблема при вставке большого количества записей из FB  [new]
WНаталья
Member

Откуда: Мурманск
Сообщений: 68
Нет, не программистка. Когда задание давали, выглядело легко. Перелить фото из одной БД в другую. А потом выясняется.....

procedure TForm1.btnLoadClick(Sender: TObject);

begin

qGET_PERS_FOTO.Open;
qGET_PERS_FOTO.Insert;
FDQuery1.first;

while not (FDQuery1.Eof) do

begin

 try

    qGET_PERS_FOTO.FindField('foto').Assign(FDQuery1.FieldByName('foto'));
    qGET_PERS_FOTO.FindField('pers_id').Assign(FDQuery1.FieldByName('pers_id'));
    qGET_PERS_FOTO.Post;

    Except
     On e: Exception Do
     begin
       if Pos('unique constraint', e.Message)> 0 then
       begin
         Break
       end;
    end;
 end;
16 фев 21, 19:05    [22281842]     Ответить | Цитировать Сообщить модератору
 Re: Проблема при вставке большого количества записей из FB  [new]
ъъъъъ
Member

Откуда:
Сообщений: 1770
Вот распрыгалась, как павианы в брачный период.
16 фев 21, 19:06    [22281843]     Ответить | Цитировать Сообщить модератору
 Re: Проблема при вставке большого количества записей из FB  [new]
WНаталья
Member

Откуда: Мурманск
Сообщений: 68
Гаджимурадов Рустам,

сорян, за скрин.

если у компонента FDConnection ставить Unidirectional = True, то почему-то вставляется только одна запись

К сообщению приложен файл. Размер - 11Kb
16 фев 21, 19:11    [22281848]     Ответить | Цитировать Сообщить модератору
 Re: Проблема при вставке большого количества записей из FB  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 52445

WНаталья
Нет, не программистка.

А кто? Секретарша?.. В приведённом коде нет ни одной правильной строки.

Posted via ActualForum NNTP Server 1.5

16 фев 21, 19:12    [22281849]     Ответить | Цитировать Сообщить модератору
 Re: Проблема при вставке большого количества записей из FB  [new]
WНаталья
Member

Откуда: Мурманск
Сообщений: 68
ъъъъъ,

сарказм не поняла.
16 фев 21, 19:12    [22281850]     Ответить | Цитировать Сообщить модератору
 Re: Проблема при вставке большого количества записей из FB  [new]
Гаджимурадов Рустам
Member

Откуда:
Сообщений: 62404
WНаталья> Нет, не программистка.

Ну а чего тогда не своим делом занимаешься?


WНаталья> qGET_PERS_FOTO.Open;
WНаталья> qGET_PERS_FOTO.Insert;

Вставку делайте с пом. Command и запросом Insert, без датасета.

FDOracleQuery.SQL := 'insert into table (id, photo) Values( :p1, :p2)';
цикл
FDOracleQuery.Param[0] := ...
FDOracleQuery.Param[1].LoadFrom...
FDOracleQuery.Execute;
FDFBQuery.Next;
конец цикла.
Commit;


WНаталья> FDQuery1.first;


Где запрос-то? Где ограничение и цикл?
Первые 10 фоток копируются хоть?

Posted via ActualForum NNTP Server 1.5

16 фев 21, 19:13    [22281851]     Ответить | Цитировать Сообщить модератору
 Re: Проблема при вставке большого количества записей из FB  [new]
Мимопроходящий
Member

Откуда: бурятский тундрюк, эсквайр
Сообщений: 31969

16.02.2021 19:13, Гаджимурадов Рустам пишет:
> Ну а чего тогда не своим делом занимаешься?

это троло-ло.
ты посмотри его вопросы в оракловом форуме.
и сравни с этим "цирком".

Posted via ActualForum NNTP Server 1.5

16 фев 21, 19:15    [22281855]     Ответить | Цитировать Сообщить модератору
 Re: Проблема при вставке большого количества записей из FB  [new]
WНаталья
Member

Откуда: Мурманск
Сообщений: 68
Dimitry Sibiryakov,

вот такое ощущение, что уважаемый форумчане, отвечающие в топике, сразу родились со знаниями программирования.
Раз, и сразу супер идеальный код.

Вот и пищу здесь, чтобы понять как правильно.
К сожалению, друзей -программистов у меня нет, чтобы спросить.

Если кто-то хочет и может помочь (на за "бесплатно", естесвенно), ответить на вопросы, покритиковать код, но при это объяснить че не так, и почему, и как правильно - милости прошу с лс (можете оставить почту)
16 фев 21, 19:19    [22281858]     Ответить | Цитировать Сообщить модератору
 Re: Проблема при вставке большого количества записей из FB  [new]
Гаджимурадов Рустам
Member

Откуда:
Сообщений: 62404
WНаталья> Если кто-то хочет и может помочь (на за "бесплатно", естесвенно),

Надо было сразу сумму озвучивать.
За 100-200 баксов желающие бы
нашлись, там "работы" на 10 минут.

https://sql.ru/forum/actualsearch.aspx?search=параметры BLOB Insert&bid=20&st=1

Сообщение было отредактировано: 17 фев 21, 12:57
16 фев 21, 19:26    [22281861]     Ответить | Цитировать Сообщить модератору
 Re: Проблема при вставке большого количества записей из FB  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 52445

WНаталья
вот такое ощущение, что уважаемый форумчане, отвечающие в топике, сразу родились со
знаниями программирования.

Вот такое ощущение, что Вы считаете, что остальные сразу родились со знаниями
программирования и только Вам почему-то приходится что-то читать, что-то искать и вообще
морщить мозг и Вы наотрез это отказываетесь делать.

http://www.ibase.ru/impexp/
http://www.ibase.ru/ibx/ (Не обращайте внимание на название, принципы, там описываемые,
одинаковы для всех библиотек компонент)

Posted via ActualForum NNTP Server 1.5

16 фев 21, 19:29    [22281864]     Ответить | Цитировать Сообщить модератору
 Re: Проблема при вставке большого количества записей из FB  [new]
defecator
Member

Откуда:
Сообщений: 39683
WНаталья
Гаджимурадов Рустам,

сорян, за скрин.

если у компонента FDConnection ставить Unidirectional = True, то почему-то вставляется только одна запись

Картинка с другого сайта.

очень годный запрос
16 фев 21, 19:37    [22281869]     Ответить | Цитировать Сообщить модератору
 Re: Проблема при вставке большого количества записей из FB  [new]
WНаталья
Member

Откуда: Мурманск
Сообщений: 68
Гаджимурадов Рустам,
спасибо
16 фев 21, 19:38    [22281870]     Ответить | Цитировать Сообщить модератору
 Re: Проблема при вставке большого количества записей из FB  [new]
WНаталья
Member

Откуда: Мурманск
Сообщений: 68
Dimitry Sibiryakov,

спасибо
16 фев 21, 19:39    [22281871]     Ответить | Цитировать Сообщить модератору
 Re: Проблема при вставке большого количества записей из FB  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 52445

И в дополнение к тщательному изучению: https://habr.com/en/post/273549/

Posted via ActualForum NNTP Server 1.5

16 фев 21, 19:54    [22281885]     Ответить | Цитировать Сообщить модератору
 Re: Проблема при вставке большого количества записей из FB  [new]
YuRock
Member

Откуда: Донецк
Сообщений: 4403
WНаталья
Гаджимурадов Рустам,

сорян, за скрин.

если у компонента FDConnection ставить Unidirectional = True, то почему-то вставляется только одна запись
Можно подумать, без Unidirectional вставлялось больше одной.
16 фев 21, 20:35    [22281898]     Ответить | Цитировать Сообщить модератору
 Re: Проблема при вставке большого количества записей из FB  [new]
MaratIsk
Member

Откуда: Almaty, Kazakhstan
Сообщений: 2556
не знаю как другие гуру, но я сдаюсь с позором )))
16 фев 21, 21:53    [22281945]     Ответить | Цитировать Сообщить модератору
 Re: Проблема при вставке большого количества записей из FB  [new]
YuRock
Member

Откуда: Донецк
Сообщений: 4403
MaratIsk
не знаю как другие гуру, но я сдаюсь с позором )))
Та тут бесполезно. По коду уже видно стало, что обсуждение ради обсуждения.
Ошибки логические специально проставлены, чтоб никто не догадался.
А названия переменных/объектов говорят о том, что ТС - не новичок. Кто именно троллит, гадать не хочу.
16 фев 21, 22:55    [22281968]     Ответить | Цитировать Сообщить модератору
 Re: Проблема при вставке большого количества записей из FB  [new]
fraks
Member

Откуда: Новосибирск
Сообщений: 1631
defecator
WНаталья
Гаджимурадов Рустам,

сорян, за скрин.

если у компонента FDConnection ставить Unidirectional = True, то почему-то вставляется только одна запись

Картинка с другого сайта.

очень годный запрос

Холмс, но КАК???
:)
17 фев 21, 04:52    [22282024]     Ответить | Цитировать Сообщить модератору
 Re: Проблема при вставке большого количества записей из FB  [new]
fraks
Member

Откуда: Новосибирск
Сообщений: 1631
WНаталья

сорян, за скрин.


select * -- first 100 *
from (select pers_id, foto from stud
-- where pers_id between 150000 and 156475
order by pers_id desc)


Почему бы без масла маслянного писАть?

select 
--  first 100
  pers_id, foto 

from stud
-- where (pers_id between 150000 and 156475)

order by 
  pers_id desc


И есть понятие для чего тут
order by
применяется?
17 фев 21, 05:10    [22282025]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: 1 2 3      [все]
Все форумы / Delphi Ответить