С Новым годом! Форум программистов, компьютерный форум, киберфорум
C++ Builder: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
6 / 6 / 2
Регистрация: 06.04.2011
Сообщений: 313
Oracle

ODAC -> Как записать короткий массив char*?

25.11.2015, 11:51. Показов 843. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
В таблице под Ораклом есть поле, описанное как VARCHAR2(4000 Byte). В это поле мне нужно передать короткий байтовый массив, например, char arr[300].
Для этого используется компонента (хранимая процедура) ODAC класса TOraStoredProc, где соответствующий параметр описан как VARCHAR2.

1. Какой тип этого параметра мне надо указать в TOraStoredProc?
2. Как char arr[300] засунуть в этот параметр?

В целом, проблема такая: как записать в поле таблицы короткий байтовый массив без использования BLOBов? Видимо, как-то просто, но никак не получается.
Может быть, кто поможет?
Спасибо.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
25.11.2015, 11:51
Ответы с готовыми решениями:

Как char записать в массив?
пример кода for (int i = 0; i < N; i++) { char str = A.ToCharArray(); ...

Как записать char массив в конструкторе
Подскажите, как записать char масив в кострукторе #include <iostream> #include <string.h> using namespace std; class RIELTER ...

Как прочитать строку из едита и записать ее в массив char
Как прочитать строку из едита и записать ее в массив char?

8
Почетный модератор
 Аватар для Lord_Voodoo
8785 / 2538 / 144
Регистрация: 07.03.2007
Сообщений: 11,873
25.11.2015, 12:54
vlad2, вообще в оракле выделяется ровно столько места, сколько нужно данным, а не сколько у вас указано в размерности поля...
0
6 / 6 / 2
Регистрация: 06.04.2011
Сообщений: 313
25.11.2015, 13:46  [ТС]
Цитата Сообщение от Lord_Voodoo Посмотреть сообщение
vlad2, вообще в оракле выделяется ровно столько места, сколько нужно данным, а не сколько у вас указано в размерности поля...
Ну хорошо, размер массива у меня есть. Вопрос в том, как его засунуть в параметр.
0
4217 / 3059 / 583
Регистрация: 21.01.2011
Сообщений: 13,203
25.11.2015, 15:31
Цитата Сообщение от vlad2 Посмотреть сообщение
Вопрос в том, как его засунуть в параметр
Например, создать из массива единую строку
0
Почетный модератор
 Аватар для Lord_Voodoo
8785 / 2538 / 144
Регистрация: 07.03.2007
Сообщений: 11,873
25.11.2015, 15:44
vlad2, если я не ошибаюсь, то BLOB записывались с помощью потоков, посмотрите на форуме, я даже рабочий пример выкладывал, а если найду у себя, то сам выложу...

Добавлено через 5 минут
Запись файла в BLOB поле SQL запросом

Думаю, с ODAC такой фокус тоже пройдет:

C++
1
2
3
4
5
6
7
8
ADOTable1->Insert(); 
TMemoryStream *M = new TMemoryStream(); 
M->LoadFromFile("h:\\my_file.doc"); 
TStream *B = ADOTable1->CreateBlobStream(ADOTable1->FieldByName("My_Field"),bmWrite); 
B->CopyFrom(M,M->Size); 
delete B; 
ADOTable1->Post(); 
delete M;
потому что я с PgDac такое проделывал, но не могу найти рабочего кода...
0
6 / 6 / 2
Регистрация: 06.04.2011
Сообщений: 313
25.11.2015, 16:34  [ТС]
Цитата Сообщение от Lord_Voodoo Посмотреть сообщение
BLOB записывались с помощью потоков
С блобом вопросов нет, проблема в том, как обойтись без него (см. начальный пост).
0
Почетный модератор
 Аватар для Lord_Voodoo
8785 / 2538 / 144
Регистрация: 07.03.2007
Сообщений: 11,873
25.11.2015, 17:46
а какая разница между картинкой и набором байтов? по-моему, никакой, если у тебя есть готовый кусок кода, причем поле в таблице уже определено, то просто подложи данные да и все...
0
6 / 6 / 2
Регистрация: 06.04.2011
Сообщений: 313
25.11.2015, 19:46  [ТС]
Цитата Сообщение от Lord_Voodoo Посмотреть сообщение
просто подложи данные да и все
Собственно, и спрашиваю, как это сделать, чтобы потом получить те же самые байты один в один.

Добавлено через 1 час 16 минут
Спасибо, вопрос решили на сервере.
0
Почетный модератор
 Аватар для Lord_Voodoo
8785 / 2538 / 144
Регистрация: 07.03.2007
Сообщений: 11,873
26.11.2015, 10:31
vlad2, небось заменой типа данных у поля?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
26.11.2015, 10:31
Помогаю со студенческими работами здесь

Как поток данных с последовательного порта записать в массив типа char
Как реализовать запись символов приходящих с последовательного порта в массив char? Например при отправке строки String в последовательный...

Записать число типа int в массив char -ов так, как оно представляется в памяти
Здравствуйте, моя цель - записать переменную какого-либо типа в массив char-ов (строку) так, как она представляется в памяти. Например, я...

Записать один массив Char в другой
Не могу запихнуть один чаровский массив в другой, помогите. char *operat={"printf", "gogi"}; ...

Записать одномерный char* массив в двумерный в качестве строки
Собсна вот краткий алгоритм действий для решения задачи: считать строки из файла в переменную (есть) ...

Массив типа char записать в одну ячейку другого массива
Добрый день, есть массив типа char. В нем в одной ячейке элемент 'a', в другой 'b'. Я создать другой массив тоже типа char и чтобы там был...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru