Надо мне MySQL или не надо? Вот в чём вопрос.

Тема в разделе "WASM.BEGINNERS", создана пользователем Shonkhor, 1 дек 2010.

  1. Shonkhor

    Shonkhor New Member

    Публикаций:
    0
    Регистрация:
    1 дек 2010
    Сообщения:
    14
    Доброго времени суток.
    Я очередной чебурек который пытается изучить программирование на Ассемблере (скорее больше Api). Поставил перед собой задачу собрать программу для ведения футбольной статистики. Ну типа: кто с кем когда играет, кто сколько кому забивает, и кто в какой команде отдыхает. Продвинулся я в своих разработках вроде как не плохо (по крайней мери для меня). Но вот тут меня на днях озадачили – мол для подобного рода творений необходимо создавать базу данных (или подключать, я немного не понимаю). В инети шарил около недели, но так и не нашёл никаких примеров на подобного рода темы (Наверное понятных для меня).
    В общем если кому не в лом лишний раз понажимать клавиши будьте так добры объясните мне как это всё состыковывается друг с другом.
    Приму любые (наверное) идеи по реализации. Может как-то по-другому можно осуществить мою задумку?
    Если же мой вопрос кажется вам глупым, то объясните почему. Может хоть что-то до меня дойдёт.
     
  2. PSR1257

    PSR1257 New Member

    Публикаций:
    0
    Регистрация:
    30 ноя 2008
    Сообщения:
    933
    Shonkhor

    Можно реализовать собственную БД - свой формат данных, свои индексы и так далее. Можно попробовать установить этот MySql (или другой открытый - или коммерческий) движок и пытаться снюхиваться с ним (на асме).

    Обе задачи полезны: в обоих случаях вы изучаете ассемблер и немного WinApi/или Linux?, учитесь проектировать (модули, функции). В плане перспективы наверное лучше MySql, так как SQL - современный язык БД (как более абстрактный чем "курсорые" БД), и вы изучаете его (перспектива про работу) и заодно изучаете его изнутри так как вам придется вручную формировать пакеты запросов (не используйте всякте ДАО и прочие обертки!).

    Лично я начинал программировать с мелких баз для знакомых, потом - на продажу - и я понятия не имел что такое БД вообще. Писал на асме. После собственных исследований (не особо долгих) писать серьезный код на любой БД с нуля я мог начать через несколько недель - так как изучил это от простейшего к сложному.

    Good luck.
     
  3. _sheva740

    _sheva740 New Member

    Публикаций:
    0
    Регистрация:
    31 авг 2005
    Сообщения:
    1.539
    Адрес:
    Poland
    Shonkhor
    Тебе важней прогу написать или асм выучить?
     
  4. Shonkhor

    Shonkhor New Member

    Публикаций:
    0
    Регистрация:
    1 дек 2010
    Сообщения:
    14
    PSR1257

    Спасибо за вразумительный ответ. В принципе пока я и сам склоняюсь больше к MySQL (в начале посещали мысли о славе «вот как напишу, что ни будь этакое»:derisive:, что правда не знаю с чего начать. Не подскажите по какому пути следовать. Почитать там, что ни будь для начала. Возможно существуют какие-нибудь лекции типа как от того же «Iczelion’a» или как уроки от “bazarud’ы” по Ассемблеру?
     
  5. Shonkhor

    Shonkhor New Member

    Публикаций:
    0
    Регистрация:
    1 дек 2010
    Сообщения:
    14
    _sheva740

    Вообще первоначально по важности идёт написание программы. Поскольку она нужна и планируется её использование в уже существующем проекте.
     
  6. Mikl___

    Mikl___ Супермодератор Команда форума

    Публикаций:
    14
    Регистрация:
    25 июн 2008
    Сообщения:
    3.890
    Shonkhor
    Ну вообще-то вы лжете, говоря "В инети шарил около недели, но так и не нашёл никаких примеров на подобного рода темы (Наверное понятных для меня)." В уроках Iczelion'а есть "Туториалы Iczelion'а об OBCD" вполне внятное объяснение и примеры. GOOGLE на строку в поиске "база данных на ассемблере" выдает туеву хучу ссылок в конце концов можно написать программу на С/С++ скомпилировать сишный код с выдачей ассемблерного листинга (для MSVC ключ /Fa) и выкинуть лишние команды. Вот напимер ASM и БД
     
  7. spa

    spa Active Member

    Публикаций:
    0
    Регистрация:
    9 мар 2005
    Сообщения:
    2.240
    и забить на дальнейшие действия. так и оставить ее на C/C++ :derisive:
     
  8. _sheva740

    _sheva740 New Member

    Публикаций:
    0
    Регистрация:
    31 авг 2005
    Сообщения:
    1.539
    Адрес:
    Poland
    Shonkhor

    Ну если с инетом - ОК, то определенно на mysql!
    Пишешь прожку, которая делает запрос к базе
    и делов-то.

    Задача делится на части:
    - на бесплатном сервере заказываешь хостинг с поддержкой php и mysql
    - пишешь базу, заливаешь
    - а потом или из браузера или из программки на asm, на с, на pas ...
    посылаешь запрос на сервер. Ну и все .

    Почитать? Да качни любую книжку типа - "PHP и mysql с нуля".
    Пример?
    Ну вот например такая задача - нужно найти тот IP,
    который тебе дает провайдер при подключении в его сеть.
    Внешний твой ip.

    1. Есть сайт, который тебе этот ip - покажет.
    http://checkip.dyndns.org/ - к примеру.
    2. Для этого ты браузером выходишь по этой ссылке и
    читаешь свой внешний ip.
    3. Ниже программка, которая делает это же.
    Код (Text):
    1. format PE GUI 4.0
    2. entry start
    3. include 'C:\fasmw\INCLUDE\win32a.inc'
    4. b   equ byte
    5. section '.code' code readable executable
    6. start:
    7.     invoke  InternetOpen,szAgent,0,0,0,0
    8.     test    eax,eax
    9.     jz      error1
    10.     mov     [InternetHandle],eax
    11.        
    12.     invoke  InternetOpenUrl,eax,szURL,0,0,0,0
    13.     test    eax,eax
    14.     jz      error2
    15.     mov     [FileHandle],eax
    16.     invoke  InternetReadFile,eax,FileBuffer,1023,BytesRead
    17.     test    eax,eax
    18.     jz      error3
    19.     mov     eax,[BytesRead]
    20.     mov     b[FileBuffer+eax],0
    21.     invoke  MessageBox,0,FileBuffer,szAgent,0
    22. error3:
    23.     invoke  InternetCloseHandle,[FileHandle]
    24. error2:
    25.     invoke  InternetCloseHandle,[InternetHandle]
    26. error1:
    27.     invoke  ExitProcess,0
    28.  
    29.  
    30. section '.data' data readable writeable
    31.  
    32. szAgent db 'FASM',0
    33. szURL   db 'http://checkip.dyndns.org/',0
    34.  
    35.  
    36. InternetHandle  dd ?
    37. FileHandle  dd ?
    38. BytesRead       dd ?
    39. FileBuffer  rb 1024
    40.  
    41. section '.idata' import data readable writeable
    42.  
    43. library kernel32,'KERNEL32.DLL',\
    44.     wininet,'WININET.DLL',\
    45.     user32,'USER32.DLL'
    46.  
    47. import  kernel32,\
    48.     ExitProcess,'ExitProcess'
    49.  
    50. import  user32,\
    51.     MessageBox,'MessageBoxA'
    52.  
    53. import        wininet,\
    54.     InternetOpen,'InternetOpenA',\
    55.     InternetReadFile,'InternetReadFile',\
    56.     InternetOpenUrl,'InternetOpenUrlA',\
    57.     InternetCloseHandle,'InternetCloseHandle'
    Запустил. И считал внешний свой адрес :)

    А если на сервере лежит твой скрипт, то ты можешь его (скрипт)
    таким запросом спровоцировать на выполнение.
    А если знаешь php немного, то можешь передать ему (скрипту)
    данные тем же манером, т.е. в запросе.
    Но запрос уже будет к примеру такой
    Код (Text):
    1. http://mysite_whith_php.ru/get_data.php?ball=10
    И твой скрипт получит переданную тобой цифру -10,
    а там уже может ее и передать в базу mysql
    по-соседству на сервере.

    Так примерно.
     
  9. Mikl___

    Mikl___ Супермодератор Команда форума

    Публикаций:
    14
    Регистрация:
    25 июн 2008
    Сообщения:
    3.890
    spa
    я имел ввиду создать программу на любом известном ЯВУ, например на С/С++ меня смутило "Но вот тут меня на днях озадачили – мол для подобного рода творений необходимо создавать базу данных (или подключать, я немного не понимаю)" сколько работаю с ассемблером -- базы данных на нем создавал только из любопытства, то есть (это конечно IMHO) необходимым навыком для изучения ассемблера создание и работа с базами данных не является
     
  10. _sheva740

    _sheva740 New Member

    Публикаций:
    0
    Регистрация:
    31 авг 2005
    Сообщения:
    1.539
    Адрес:
    Poland
    Поддерживаю полностью, лучше бы строки по перебирал или
    числа по пересортировал.
     
  11. Shonkhor

    Shonkhor New Member

    Публикаций:
    0
    Регистрация:
    1 дек 2010
    Сообщения:
    14
    Mikl___

    Ну вообще-то не лгу. Вы по этому запросу хоть на одну ссылку заходили? Или только посмотрели количество предлагаемых вариантов? В основном идёт «Пишу рефераты», либо просто слово Ассемблер в тексте. За "Туториалы Iczelion'а об OBCD" спасибо я их почему-то пропустил. По всей видимости не вкурил о чём речь. На счёт “Си” я кроме как обозначения начала кода и конца больше нечего не знаю, а ну ещё как комменты писать. Исходя из всего выше перечисленного решил обратится сюда, что бы хоть немного подтолкнули в нужное мне направление.
    Ну, что же попробуем “MySQL”+”OBCD”.
     
  12. _sheva740

    _sheva740 New Member

    Публикаций:
    0
    Регистрация:
    31 авг 2005
    Сообщения:
    1.539
    Адрес:
    Poland
    Немного не так, нужно сказать.
    Ну, что же попробуем “MySQL”.
    А, если не пойдет, то ”OBCD” чтобы не морочиться с нетом,
    хотя чего там бояться?
    А это зряяя, лучше бы как раз с С и начал. Серьезно!
     
  13. Shonkhor

    Shonkhor New Member

    Публикаций:
    0
    Регистрация:
    1 дек 2010
    Сообщения:
    14
    Мля я не в ГОС Думу попал случаем? Причём здесь необходимость? И что кому перебирать? Я попросил совета, а тут начались дебаты. Вы чё самолюбие своё здесь тешите?
    Всем спасибо за помощь.
     
  14. _sheva740

    _sheva740 New Member

    Публикаций:
    0
    Регистрация:
    31 авг 2005
    Сообщения:
    1.539
    Адрес:
    Poland
    А как все начиналось )
     
  15. Mikl___

    Mikl___ Супермодератор Команда форума

    Публикаций:
    14
    Регистрация:
    25 июн 2008
    Сообщения:
    3.890
    Shonkhor
    Нет не в ГОС Думу, а на сайт WASM.RU/FORUM, в отличии от других сайтов, где ответ пришлось бы ждать неделю, здесь реакция отменная, и советы были от профессионалов, но "не в коня корм...", а самолюбие здесь тешат совсем по-другому..
     
  16. spa

    spa Active Member

    Публикаций:
    0
    Регистрация:
    9 мар 2005
    Сообщения:
    2.240
    Shonkhor
    ОТВЕТ: кури маны по соответствующим библиотекам, и кушай кашку.
     
  17. Shonkhor

    Shonkhor New Member

    Публикаций:
    0
    Регистрация:
    1 дек 2010
    Сообщения:
    14
    _sheva740

    В том то всё и дело, что каждый вырвал по строчки из предложения, выделил вещи для себя. Ну в принципе я, что-то подобное и ожидал. Просто до этого я почитал страниц десять данного раздела. По ним сразу стало всё понятно. Какие то агрессивные вы слегка ребята. Насчёт выделений, а почему не – объясните, (наверное), почему, до меня.

    Насчёт примера спасибо.
     
  18. PSR1257

    PSR1257 New Member

    Публикаций:
    0
    Регистрация:
    30 ноя 2008
    Сообщения:
    933
    Shonkhor

    Sorry, про MySql ничего конкретного сказать не могу, только абстрактные сАветы. Наверное нужно сначала запустить его локально (если есть портирование под win - вы же под Win хотите писать?) и начать на ассемблере пытаться с ним состыковаться. Передать ему запросы на создание таблиц и так далее. Изучите как выглядит запрос на самом нижнем уровне, как приходят ответы (records), как формат передачи выглядит.

    Возможно оно лучше всего через сокеты, но все едино через сокеты или через сервисы передавать и получать самые "сырые" данные что возможно. В этом процессе (повторяюсь) изучите SQL как он есть и прикладной ассемблер.

    Если знаете какой-нить HLL уже, то лучше начать с asm-вставок или сразу начать писать DLL со своим интерфейсом (фактически ту же прослойку что и DAO, только тут вы будете хорошо все знать + всякие технические вещи типа потоков, синхронизации и так далее).

    Если что почитать про ассемблер - то ничего читать не нужно :) просто качайте masm32 и вперед (ну можно по урокам немного пройтись). Если будете из под VC/Delphi на асм-вставках (сначала) то там уже все есть (отладчик к примеру), при первых попытках собрать все асме будет немного больно но при небольшом усилии - ничего сложного.
     
  19. Shonkhor

    Shonkhor New Member

    Публикаций:
    0
    Регистрация:
    1 дек 2010
    Сообщения:
    14
    PSR1257

    Спасибо.
    Меня в принципе ваш первый ответ уже подтолкнул на некоторые идеи. Писать буду под Win, вернее уже пишу. MASM давно стоит. Я собственно на нём и учусь. Программа фактически полностью построена на API функциях. Да и проект уже весь распределён. Осталось только всё собрать воедино. Не мог определиться с базой, да и вообще нужна ли она мне? Собственно в самой проге то нет ничего особенного – фотографии героев да куча текста. От программы требуется тупо складывать и выдавать сумму. Ну по крайней мери для начала, дальше будет видно.

    На счёт SQL возможно для начала стоит попробовать, что-то менее масштабное. Да и господин Mikl___ убедил меня не торопится. Почитаю как я лучше “Iczelion’a” ещё.
    Вы говорили что начинали программировать с мелких баз. Не поделитесь примерами?

    Почитать имел ввиду про организацию структуры базы данных, как что с чем состыковать. Но не на языке древних МАЙЯ, а на доступном для простого обывателя.
     
  20. Voodoo

    Voodoo New Member

    Публикаций:
    0
    Регистрация:
    9 апр 2003
    Сообщения:
    297
    Адрес:
    Новосибирск
    sqlite гораздо больше подходит, если прога чисто для "поиграться". то есть, пока не нужна клиент-серверность, лучше обойтись им.

    а вообще, если бы мне было реально нечем заняться, я бы покурил мануалы и поучился писать свою полноценную бд, с SQL и индексами.