|
3 / 3 / 1
Регистрация: 10.08.2017
Сообщений: 32
|
|
Записать в RAGrid (RadAsm) данные, полученные из базы данных при помощи MySql API01.05.2018, 09:06. Показов 2056. Ответов 22
Метки нет (Все метки)
Решил одну проблему, появилась новая.
База данных MySql. При помощи Mysql API, пишу в базу, читаю из базы. А вот записать, RaGrid полученные из базы данные, не получается Голову уже сломал, и мозг вывихнул. Есть примеры заполнение Gridа данными Но они сделаны для ODBC. Может кто подскажет, в каком направлении копать ?????
0
|
|
| 01.05.2018, 09:06 | |
|
Ответы с готовыми решениями:
22
Кэшировать данные полученные из API
|
|
3 / 3 / 1
Регистрация: 10.08.2017
Сообщений: 32
|
|
| 03.05.2018, 13:25 [ТС] | |
|
Что то не видно желающих, что то сказать по этому поводу.
0
|
|
|
3410 / 1829 / 489
Регистрация: 28.02.2015
Сообщений: 3,696
|
|||
| 03.05.2018, 15:34 | |||
|
Mysq и ODBC, это только надстройки над Базами. По своему функционалу они почти одинаковы. В ODBС хххх делает уууу, а что в Mysq делает уууу, вот Вы найдете свой zzzz.
0
|
|||
|
3 / 3 / 1
Регистрация: 10.08.2017
Сообщений: 32
|
|
| 03.05.2018, 15:48 [ТС] | |
|
Вот и сижу разбираюсь.
Только ODBC это своего рода прокладка, между пользовательской программой и базой. А API - работает напрямую с клиентом базы. Но ничего подвижки уже есть.
0
|
|
|
3410 / 1829 / 489
Регистрация: 28.02.2015
Сообщений: 3,696
|
||
| 03.05.2018, 16:00 | ||
0
|
||
|
3 / 3 / 1
Регистрация: 10.08.2017
Сообщений: 32
|
|
| 03.05.2018, 17:40 [ТС] | |
|
Да конечно.
Но ODBC это так называемый драйвер, который принимает свои API функции и преобразут их в последовательность, Опять же API функций конкретного клиента, будь то MySql, MSSql и т.д. Так что убрав лишнюю прокладку, выигрыш в производительности. Конечно немного геморно, но думаю игра стоит свеч ![]() Просто приходится немного поломать голову , но это только на пользу.Добавлено через 4 минуты Эту дискуссию можно продолжать долго, упражняясь в эпистолярном жанре. Скажи пожалуйста, у тебя есть какая то конкретика, хотя бы указать направление куда копать. Направление на х.. отвергается изначально.
0
|
|
|
3410 / 1829 / 489
Регистрация: 28.02.2015
Сообщений: 3,696
|
|||
| 03.05.2018, 21:04 | |||
1
|
|||
|
3 / 3 / 1
Регистрация: 10.08.2017
Сообщений: 32
|
||||||||||||||||||||||||||
| 04.05.2018, 14:04 [ТС] | ||||||||||||||||||||||||||
|
Если уж хочешь взглянуть на код, то особых проблем не вижу.
MySql server 5.6.21 База данных из пакета - world Таблица - country
Получить имена столбцов и тип данных. Нужно для формирования RAGrida. Имена столбцов нужны для заполнения заголовков, а тип данных для колонок
Все работает нормально. Теперь пытаюсь прочитать данные из таблицы И вот тут появляется затык. Согласно примеров получения колонок и Получения данных (автор KetilO)
0
|
||||||||||||||||||||||||||
|
Модератор
|
|
| 04.05.2018, 20:28 | |
|
cain52, затрудняюсь с ответом на ваш вопрос. У меня лишь соображение.
Как я понял, у вас проблема не столько в заполнении RAGrid, сколько в получении данных для этого заполнения. Т.к. вся работа с БД выполняется через API MySQL, то программа на C/Delph/VB с правильной последовательностью этих вызовов должна суметь вывести эти данные в консоль. Я предлагаю вам попробовать реализовать такую тестовую программку для проверки правильности последовательности и параметров вызова API MySQL. И тогда перенести всё в ассемблер. Просто пока неясно, что неправильно. И на языке высокого уровня можно легче проверять успех вызова функций (на ассемблере для упрощения часто игнорируют анализ кода возврата).
0
|
|
|
3 / 3 / 1
Регистрация: 10.08.2017
Сообщений: 32
|
|
| 05.05.2018, 07:37 [ТС] | |
|
Да я все так и делаю.
Я сделал две простенькие тестовые программы, одна на С и вторая на ассемблере, которые выводят полученные из базы данные на консоль. Также есть вывод в файл. И все работает нормально. Проблема именно в заполнении RaGrid_a, т.к там нужна привязка столбцов по типу данных. В гриде, формируются столбцы, соответствующие типу данных, которые в них выводятся. Смотрите примеры : ODBCGetColumns - Получение имени и типа столбца. Для формирования сетки. В результате работы формируются столбцы с именами в заголовке и соответствующего типа данных. И это все работает. Сетку создаю, заголовки заполняю. ODBCGetData - Получить данные из таблицы и разместить их в сетке. И вот здесь затык. Примеров заполнения сетки, кроме этих, я не нашел. Добавлено через 1 минуту А анализ выполнения функций работает нормально. Добавлено через 1 час 8 минут Попробую поковырять исходники RAGrida, может там что нарою.
0
|
|
|
3410 / 1829 / 489
Регистрация: 28.02.2015
Сообщений: 3,696
|
|||||||
| 05.05.2018, 16:59 | |||||||
0
|
|||||||
|
3 / 3 / 1
Регистрация: 10.08.2017
Сообщений: 32
|
|
| 05.05.2018, 18:45 [ТС] | |
|
Да все именно так.
И в данном случае, мы читаем имена полей и их тип. Для того что бы прочитать содержимое таблицы, мы должна выполнить функцию последовательность функций, а это mysql_store_result - получить данные mysql_num_fields - получить количество столбцов mysql_num_row - Получить количество строк И выполняя в цикле mysql_feth_row (цикл вложенный) заполнить переменную. Но для того чтобы эту переменную можно было записать в сетку нужно каждый столбец привязать по типу данных. В общем поковыряв сегодня исходники RaGrid.dll, я определился с тем, Что надо найти соответствие для переменных MySql и переменных для ODBC. Это надо для привязки данных таблицы, к столбцам сетки. Таблицу аналогов типов данных для MSSQL и Fierbirda нашел. Частично есть подобная таблица для MSSQL и MySql. Так что копаю дальше. Добавлено через 7 минут А через API работает шустрее. Сделал тест-прогу Все что у меня работает через API и то же самое через ODBC Через API шустрее, через ODBC проще. Меньше заморочек. Вот что значит лишняя прокладка. Хоть она и Olvis но не ............. ![]() Добавлено через 6 минут Извини за вопрос. Из всех кто смотрел эту тему, ты единственный кто ответил, не считая модераторов. Тебе это тоже интересно или .......... А то у меня есть еще проблемы, например бесконтактные карты. У меня тут жена получила карту сбербанка "МИР". Я ее проверил так она вооще фуфа. Карта полность открыта, пиши на нее что хочешь и куда хочешь. Даже не умудрились поменять, стандартные транспортные ключи.
1
|
|
|
3410 / 1829 / 489
Регистрация: 28.02.2015
Сообщений: 3,696
|
|||
| 05.05.2018, 19:55 | |||
![]() Вот так я подсел на базы. ![]() Тут некоторая справка по MySQL. mysql_num_fields - получаем количество столбцов; в цикле формируем массив название поля-тип поля=длина поля в байтах mysql_fetch_field - получаем данные одного поля; и заполняем массив название-длина прочитав одну строку mysql_fetch_row() начинаем её разбирать по байтам, как на минифтюре.
0
|
|||
|
3 / 3 / 1
Регистрация: 10.08.2017
Сообщений: 32
|
||||||
| 06.05.2018, 07:07 [ТС] | ||||||
|
Да все примерно так и происходит.
Получаем количество строк Получаем количество столбцов, а затем во вложенном цикле разбираем каждую строку по столбцам. И если все это выводить в консоль, то все ОК. Но в RAGrid, такое не пролазит. В нем есть механизм сортировки, и для правильной работы он требует еще и тип поля. А отсюда и проблемы. Добавлено через 4 минуты Спасибо за ссылку, но это я уже прочитал и не один раз не пробовал читать, разве что по диагонале. Добавлено через 8 минут Я пришел к выводу, надо найти соответствие типов данных, между C SQL и MySql.
invoke SQLBindCol,hStmt,nInx,SQL_CHAR,edi,256,a ddr len Смотри выше ODBCGetData.
0
|
||||||
|
3410 / 1829 / 489
Регистрация: 28.02.2015
Сообщений: 3,696
|
||
| 06.05.2018, 10:16 | ||
|
1
|
||
|
3 / 3 / 1
Регистрация: 10.08.2017
Сообщений: 32
|
||||||
| 06.05.2018, 12:28 [ТС] | ||||||
|
Я же уже пытался объяснить в чем разница, вывод на консоль и вывод в грид.
Если выводить в грид по принципу вывода на консоль, то получается какая то хрень. Для вывода в грид, нужно сформировать специальный массив. Примерно по такому принципу:
и каждый столбец имеет свой тип данных. сетка на конкретное количество столбцов.
0
|
||||||
|
3 / 3 / 1
Регистрация: 10.08.2017
Сообщений: 32
|
|
| 06.05.2018, 12:52 [ТС] | |
|
Посмотри, для наглядност Демо8 работает с базой mdb
0
|
|
|
3410 / 1829 / 489
Регистрация: 28.02.2015
Сообщений: 3,696
|
|
| 06.05.2018, 18:58 | |
|
cain52, скачал, буду смотреть завтра, по дороге с дома на работу и обратно, ксати Вы так и не показали свой RaGrid, как Вы сним работаете.
0
|
|
|
3 / 3 / 1
Регистрация: 10.08.2017
Сообщений: 32
|
|
| 07.05.2018, 06:31 [ТС] | |
|
Я специально выслал примеры
У меня все тоже самое, за исключением того, что в примерах работают через драйвер ODBC. Я пытаюсь все это сделать при помощи MySql API. Сегодня попытаюсь выслать свою версию. Добавлено через 1 минуту У вас есть IDE RADASM ? Т.к. этот RAGrid, является контролом этого IDE.
0
|
|
| 07.05.2018, 06:31 | |
|
Помогаю со студенческими работами здесь
20
Как из базы access извлечь данные для последующей обработки при помощи математических функций ? Вывод таблицы базы данных на форму при помощи ADO Как выводить данные по условию из базы данных mysql
Как при помощи триггера записать информацию о входе в базу данных Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
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, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
|
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога
Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
|
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
|
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования.
Часть библиотеки BedvitCOM
Использованы. . .
|