Подскажите! Надо прогу для работы с БД. Хочу написать на Асме, чтоб маленькая была, да и мне лучше. Что делать- писать все самому (думаю- просмотр listbox'ом, база- текстом) или использовать что нибудь стандартное (что и как?)?
Все зависит насколько сложная задача. Если это диплом или курсовая, то можно и так. Если же нужна нормальная база, то лучше все-таки готовую библиотеку для работы с базами использовать.
Вот маленькая прога может пригодится. Может создавать базу, просматривать таблцы, понимат SQL запросы(результат выводит в листбокс). Но работает только с файлами ACCESS. _1772684079__odbc.rar
Привет, попробуй sqlite, правда я писал при её помощи только на С, там есть готовая библиотека со всеми фу-циями... между прочим, очень быстрая, на сколько я помню её хотели с PHP5 постовлять, как замену обычной mySQL, в работе удобна и все такое. Единственная проблема (камень предкновения) это структуры используемые в фу-циях, не знаю как ты их будешь вытаскивать из исходников (не забудь их скачать), я в этом далеко не проф. Может у кого-то есть какой-нибудь перл скрипт, который вытаскивает из Сишных файлов заголовков описание структур...
Для определённых приложений намного проще написать свою БД. И как раз именно на асме реализовывать мини-СУБД максимально просто. Напиши примерно, что у тебя за задача, и я скажу, что проще: писать свою СУБД или использовать чужую.
ассембелр для БД - это не лучший выбор. он не обеспечивает ни компакности, ни скорости, ни легкости отладки... тем более, если база в тексте, то о скорости можно забыть
yureckor Может, лучше какую-нибудь готовую БД взять? Тот же Access или MySQL? Все-таки, побыстрее будет. Тут на сайте есть неплохие тутореалы, как связываться с БД через ODBC - можно попробовать поюзать. Правда ODBC-драйвера - далеко не самый быстрый способ доступа - если скорость критична, надо будет писать в обход (переписывать сишные хэдеры). Но на текстовой основе.. Это, имхо, совсем плохо. .. Я вот-вот тоже начну писать прогу, к-я работает с СУБД (MASM). Я выбрал MySQL пока через ODBC..
Zauberer Я реализовал БД через ODBC на Access. Работает все превосходно. Но желание есть столкнуться с MySQL. У Вас есть какие то наработки??
yureckor Прога в любом случае будет маленькой на асме, если использовать для БД сервер какой-нибудь. Ты просто будешь использовать API БД. В случае sqlite она линкуется к проге либо статически, либо динамически (sqlite.dll). Я б посоветовал именно этот вариант, хотя возможно, что через ODBC проще.
А я делал так. Написал на C# Express сборку, которая в качестве доступа к данных использует ADO.NET и в качестве OLEDB поставщика в данном случае будет неважно что использовать. Начиная от MS Jet DB до SQL Native Client и других. Потом прицепил сборку как COM-интерфейс и всё. Юзал IOleDbHelper (так назвал) где надо и из под чего угодно начиная от JS и VBS и кончая асмовыми прогами. Правда пришлось изощряться и вместо выходного объекта типа DataSet\DataTable пришлось парсить и выводить в виде строк или в "сыром" виде как XML Если найду сорец, то дам. Вообще ADO рулит , т.к. унифицированный интерфейс позволяет работать с разными поставщиками и соответственно с совершенно разными СУБД без глобальной переделки приложения. Только не юзайте ODBC драйвера, вроде как сама MS это не рекомендует, а либо OLEDB поставщиков, либо SQLNCLI и т.п. Хотя в данном случае, возможно, самый лучший вариант наверное что то типа sqlite, как тут говорят, но не работал, не знаю.
Прекрасно здесь на сайте описан метод работы с файлами ACCESS через ODBC на АСМе. Есть ли где описание работы с другими файлами БД?? Неужели тема высокоскоростных БД на АСМе никого не интересует?? На Васиках есть все в изобилии. А здесь -ПШИК. Ну давайте помогать друг-другу.
Если есть пример работы с базами Microsoft Jet, то в чем проблема? Если ODBC (но ODBC фтопку) - юзай другой драйвер доступа к данным. Если OLEDB, то другой поставщик клиента СУБД. Нет почти никакой разницы, особенно, если это реализовано через интерфейсы ADO\DAO - отличается только строка подключения и различный синтаксис SQL-языка конкретной СУБД и её возможности.
Да в том то и дело, что меня итнересует не сам SQL язык, а что лучше применить ADO? DAO? , как на практике законнектиться, что работает быстрее? Я хочу использовать базу MySql. Что на взгляд спецов более подходит для работы с этой базой? Я не специалист, если можно, конкретные советы, конкретные примеры. Я не спец, но вышеуказанные методы туториала работы с ODBC постиг и работаю с ними достаточно уверенно. Может опираясь на них мне смогут объяснить более продуктивные фишки???
Быстрее работают интерфейсы от самой БД (libmysql.dll в случае MySQL). Хотя накладные расходы от высокоуровневых и обобщающих прослоек типа ODBC, ADO и т.п. не очень большие.
IceStudent А Как правильно законнектиться ч-з ODBC или ADO? Т.е. с самого начала: 1. Подключаем libmysql.ll + lib 2. Инициализируем. 3. Теперь коннектимся к самой базе напрямую, или при помощи прослоек ODBC или ADO? 4. Необходимо дакже и их ДЛЛ-ки подключать?? Прошу, наведите на путь истинный, если можно с примером. (MASM32)