0 / 0 / 0
Регистрация: 04.05.2018
Сообщений: 1

Ошибка при создании записи через ADO в таблице MSSQL

04.05.2018, 21:13. Показов 973. Ответов 0
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброе время суток!

Прошу помощи для новичка... Яндекс не дал ответа на мой вопрос, надеюсь здесь кто-то сможет помочь...

Проблема в следующем: На VC++ 2015 пишу библиотеку в которой цепляюсь к базе на MSSQL 12 через АДО.
В таблице необходимо создать запись, делаю это следующим кодом

C++
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
    
uint8_t my_array[my_array_SIZE];
memset(my_array, 0, my_array_SIZE);
        
int my_int;
my_int = 10;
    
pRst.CreateInstance(__uuidof(Recordset));
pRst->CursorLocation = adUseClient;
pRst->Open("Select * From MyTable", _variant_t((IDispatch*)pConn, true), adOpenDynamic, adLockOptimistic, adCmdUnknown);
cnttmpls = pRst->RecordCount; //Записей
time_t t;
//tm *tk;
time(&t);
//tk = localtime(&t);
if (cnttmpls == 0)
    {
        //pRst->MoveLast();
        pRst->AddNew();
        pRst->Fields->GetItem("_ID")->Value            = l_ID.c_str();  //В БД тип nchar(50)
        pRst->Fields->GetItem("_chk")->Value           = l_bool;          //В БД тип binary(1)
        pRst->Fields->GetItem("_mint")->Value          = my_int;         //В БД тип numeric(2,0)
        pRst->Fields->GetItem("_mdate")->Value        = t;                 //В БД тип datetime
        pRst->Fields->GetItem("_marray")->Value        = my_array;     //В БД тип bigint
        pRst->Update();
        }
Запись создается, только если оставить поле _ID типа nchar, или поменять тип поля _mint на int.

C++
1
2
3
4
5
6
7
8
    
 pRst->AddNew();
 pRst->Fields->GetItem("_ID")->Value               = l_ID.c_str();  //В БД тип nchar(50)
 //pRst->Fields->GetItem("_chk")->Value        = l_bool;          //В БД тип binary(1)
 pRst->Fields->GetItem("_mint")->Value         = my_int;         //В БД тип numeric(2,0) заменил на int
 //pRst->Fields->GetItem("_mdate")->Value        = t;                 //В БД тип datetime
 //pRst->Fields->GetItem("_marray")->Value         = my_array;     //В БД тип bigint
 pRst->Update();
если попытаться передать переменные в другие поля то возникает ошибка -2147217887.
Подозреваю что проблема как раз с типами данных, на этом фоне возникло пара вопросов:
1) есть ли у кого пример, как привести тип int к numeric, а bool к binary.
2) Какой тип поля лучше использовать в БД, для записи массива uint8_t my_array[my_array_SIZE] и как его в это поле передать;

Огромное спасибо, тем кто прочитал вопрос, и за возможные подсказки!
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
04.05.2018, 21:13
Ответы с готовыми решениями:

Ошибка при создании первой записи в пустой таблице
Добрый день. Возникла такая ситуация: есть таблица, некоторые поля заполняю через контролы формы, явным образом, и поле с помощью: ...

Как при подключении через ADO к MSSQL установить значение Set Ansi_Nulls ?
Не могу найти как мне включить для моего приложения этот флаг, а то запросы неправильно отрабатывают.

Ошибка при создании бд ADO.NET
при создании бд вываливается ошибка $exception {"База данных "Factory" не существует. Убедитесь, что ее имя введено...

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
04.05.2018, 21:13
Помогаю со студенческими работами здесь

Ошибка при создании бд ADO.NET
пытаюсь создать бд ADO.NET, код полностью скопировал из этой темы using System; using System.Data.SqlClient; using System.Data; ...

Ошибка при одновременном создании двух ADO.Connection. Help!!!!
Создаю коннекшион Set objConn = Server.CreateObject('ADODB.Connection') objConn.Open 'Provider=Microsoft.Jet.OLEDB.4.0; ' & _ ...

Ошибка при ADO доступе к таблице Excel
Всем, добрый день. При изучении загрузки из Excel методом ADO. Озниула ошибка открытия файла, а именно:...

Проблема с кодировкой при записи в MSSQL через WML
По коду: - обычная WML форма через <anchor><go>.. - есть строка Session.Codepage=1251 Косяки: - при добавлении в базу,...

Ошибка при создании записи
Доброго времени! Есть проблема в неосновном модуле есть запись type recSprite = record active: boolean; ...


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

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

Новые блоги и статьи
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru