0 / 0 / 0
Регистрация: 23.03.2014
Сообщений: 18
|
||||||
1 | ||||||
Ошибка при добавлении записи в таблицу БД "Could not convert variant of type "NULL" into type "OleStr"23.06.2014, 23:21. Показов 11754. Ответов 17
Метки нет (Все метки)
Здравствуйте.
При работе программы вылетает ошибка "Could not convert variant of type "NULL" into type "OleStr" ", когда пользователь нажимает кнопку, в которой содержится только строка:
Понимаю, что сведений для решения проблемы мало, подскажите, пожалуйста, хоть что-нибудь. Спасибо.
0
|
23.06.2014, 23:21 | |
Ответы с готовыми решениями:
17
Ошибка: "Could not convert variant of type (Null) into type (OleStr)" Ошибка: "Could not convert variant of type (Null) into type (OleStr)" Ошибка "Could convert variant of type (Null) into type (oleStr)" Ошибка Unable to load project. Could not convert variant of type (Null) into type (OleStr) Ошибка: Could not convert variant of type (null) into type (olestr) |
пофигист широкого профиля
4733 / 3167 / 859
Регистрация: 15.07.2013
Сообщений: 18,252
|
|
24.06.2014, 00:16 | 2 |
0
|
0 / 0 / 0
Регистрация: 23.03.2014
Сообщений: 18
|
|
24.06.2014, 23:49 [ТС] | 3 |
Использую ADOQuery, потому что работаю с запросами. В программе вообще нет компонентов ADOTable.
0
|
пофигист широкого профиля
4733 / 3167 / 859
Регистрация: 15.07.2013
Сообщений: 18,252
|
|
25.06.2014, 02:30 | 4 |
А сам понимаешь что делаешь? Или используешь" натыренный" код без всякого понимания?
0
|
0 / 0 / 0
Регистрация: 23.03.2014
Сообщений: 18
|
|
25.06.2014, 02:43 [ТС] | 5 |
Возможно, я что-то не понимаю. Иначе бы не писал на форум. Если можно ближе теме. Как правильно использовать ADOQuery для добавления строки в таблицу? Что конкретно приводит к ошибке? Спасибо.
0
|
пофигист широкого профиля
4733 / 3167 / 859
Регистрация: 15.07.2013
Сообщений: 18,252
|
|
25.06.2014, 02:52 | 6 |
Если хочется "добавлять в таблицу базы данных строку, которая потом будет заполнятся", то это будет очень сложное извращение.
Возможно. Представь свою задачу максимально полно. P.S. Задачу, а не проблему!
0
|
0 / 0 / 0
Регистрация: 23.03.2014
Сообщений: 18
|
|
25.06.2014, 03:06 [ТС] | 7 |
Во-первых, объясни, пожалуйста, почему не стоит использовать ADOQuery в моих целях?
Во-вторых, сложность в том, что я не знаю в чем заключается проблема, я планировал, что мне на форуме подскажут, что-то от чего я смогу оттолкнуться и более точно сформулировать задачу, но... пока не получается.
0
|
пофигист широкого профиля
4733 / 3167 / 859
Регистрация: 15.07.2013
Сообщений: 18,252
|
|
25.06.2014, 03:32 | 8 |
Ну как бы это не требует объяснения. Квери - это всегда некая выборка из набора данных по некоторому/некоторым критериям.
Так покажи код и объясни задачу. Неужели это сложно?
0
|
0 / 0 / 0
Регистрация: 23.03.2014
Сообщений: 18
|
||||||
25.06.2014, 04:03 [ТС] | 9 | |||||
Нет, не сложно. Пожалуйста. Мне показалось, что скидывать такой больший кусок кода не лучшая идея.
0
|
327 / 230 / 55
Регистрация: 30.05.2014
Сообщений: 682
|
|
25.06.2014, 07:35 | 10 |
Проблема в том, что SQL запрос на выборку обычно возвращает набор, не предназначенный для редактирования.
Почему так - написано в "Фаронов В.В., Шумаков П.В. Delphi 5. Руководство разработчика баз данных" Если в этом коде заменить ADOQuery на ADOTable, с высокой степенью вероятности он заработает.
1
|
0 / 0 / 0
Регистрация: 23.03.2014
Сообщений: 18
|
|
25.06.2014, 20:54 [ТС] | 11 |
Т.е. мне еще нужно добавить в программу компонент ADOTable? И использовать ADOQuery, когда нужно получить из таблицы набор данных, а ADOTable, когда нужно внести данные в таблицу?
0
|
327 / 230 / 55
Регистрация: 30.05.2014
Сообщений: 682
|
|
26.06.2014, 03:47 | 12 |
Если это данные одной таблицы из локальной базы - то проще все делать через ADOTable, и отображение и редактирование.
0
|
3586 / 2195 / 693
Регистрация: 29.05.2013
Сообщений: 9,374
|
|
26.06.2014, 08:21 | 13 |
Не в том дело, что вам еще надо добавить AdoTable, а в том, что вы работаете с AdoQuery как с AdoTable - вы используете методы и свойства от класса TADOTable.
Судя по вашему куску кода, по идее если вы просто в описании у себя замените: AdoQuery1: TAdoQuery; на AdoQuery1: TAdoTable; то вообще ничего менять больше не потребуется. А что касается работы с AdoQuery, то ваш оппонент во несколько неправ. В большинстве случаев работа с AdoQuery проще, быстрее, а частенько и просто иной альтернативы и не предусматривает. Но работать с этим классом надо конечно изначально правильно.
0
|
327 / 230 / 55
Регистрация: 30.05.2014
Сообщений: 682
|
|
26.06.2014, 08:35 | 14 |
И предполагает несколько иной подход к работе с базой, что требует несколько другого уровня представления о SQL. Почему и предлагается для запросов по одной таблице локальной базы заменить Query на Table и почитать книгу, в которой описана разница .
0
|
669 / 559 / 242
Регистрация: 26.11.2012
Сообщений: 2,191
|
|||||||||||
26.06.2014, 11:19 | 15 | ||||||||||
Вот этот код мне не ясен
Если хотите получить данные из записи
INSERT, UPDATE, DELETE изменение. Если использовать как пытаетесь вы то лучше делать так
0
|
327 / 230 / 55
Регистрация: 30.05.2014
Сообщений: 682
|
|
26.06.2014, 13:37 | 16 |
Есть уверенность, что это сработает? Про backend и схему ни слова не было. Ну и просто ИМХО - плохому учите.
0
|
669 / 559 / 242
Регистрация: 26.11.2012
Сообщений: 2,191
|
|||||||||||
27.06.2014, 05:42 | 17 | ||||||||||
uglyPinokkio, вы правы не будет. ..... малость напутал
а вот так будет)
0
|
0 / 0 / 0
Регистрация: 23.03.2014
Сообщений: 18
|
|
27.06.2014, 20:20 [ТС] | 18 |
Вроде решилось. Проблема состояла в том, что в таблице были пустые ячейки.
Спасибо, вам за помощь.
0
|
27.06.2014, 20:20 | |
27.06.2014, 20:20 | |
Помогаю со студенческими работами здесь
18
Не открывается проект, пишет 'Could not convert variant of type (Null) into type (OleStr) XML Получение данных. Ошибка Could not convert variant of type (Null) into type (OleStr) Unable to load project [путь проекта] could not convert variant of type (null) into type (olestr) При конвертации даты возникает ошибка could not convert variant of type(Null) into type (date) StrToFloat. Could not convert variant of type (OleStr) into type (Double) Ошибка: Could not convert variant of type (Null) into type (String) - Фильтрация Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |