Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - .NET

Страница: 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9

 

  Вопрос: Как получить ответ на запрос MySql ? Добавлено: 10.04.07 07:27  

Автор вопроса:  Tricker
Кто может подсказать, как получить данные с MySql сервера. При запросе SELECT * FROM `main` WHERE 1 никак немого получить ответ на запрос. Перепробовал массу способов и с CopyMemory, ( Public Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (ByVal lpDestination As Any, ByVal lpSource As Any, ByVal lLength As Long)) она не работает в .net типа данных as Any не существует. Как быть ?????

Public Declare Function mysql_init Lib "libmySQL" (ByVal lMYSQL As Integer) As Integer
    Public Declare Function mysql_real_connect Lib "libmySQL" (ByVal lMYSQL As Integer, ByVal sHostName As String, ByVal sUserName As String, ByVal sPassword As String, ByVal sDbName As String, ByVal lPortNum As Integer, ByVal sSocketName As String, ByVal lFlags As Integer) As Integer
    Public Declare Function mysql_query Lib "libmySQL" (ByVal lMYSQL As Integer, ByVal Query As String) As Long
    Public Declare Function mysql_store_result Lib "libmysql.dll" (ByVal lMYSQL As Integer) As Long
    'Public Declare Sub mysql_close Lib "libmysql.dll" (ByVal ms As Long)

 Sub Main()
        Dim mlMYSQL As Integer = 0
        mlMYSQL = mysql_init(mlMYSQL)
        If mlMYSQL = 0 Then
            MsgBox(" no connection handler")
        End If
        If mysql_real_connect(mlMYSQL, "localhost", "root", "0", "test", "3306", "", 0) = 0 Then
            MsgBox("во блин !")
        Else '
            Dim s As String = "SELECT * FROM `main` WHERE 1"
             Console.WriteLine(mysql_query(mlMYSQL, s))
           
           Console.WriteLine( mysql_store_result(mlMYSQL) ) < что делать дальше ?

           End if
        Console.Read()
    End Sub

  Ответы Всего ответов: 121  

Номер ответа: 1
Автор ответа:
 GSerg



Вопросов: 0
Ответов: 1876


 Профиль | | #1 Добавлено: 10.04.07 09:16
Извращенца того масштаба, чтобы начать в .net использовать mySQL API напрямую, я ещё пока не встречал...
Да, я многого не знал в этой жизни...

Извращенец!
http://dev.mysql.com/downloads/connector/net/5.0.html
Номер ответа: 2
Автор ответа:
 Artyom



Разработчик

Вопросов: 130
Ответов: 6602
 Профиль | | #2 Добавлено: 10.04.07 09:26
GSerg, я прочитал вопрос раньше тебя, но был настолько озадачен, что даже затруднился что-то адекватное ответить...
Номер ответа: 3
Автор ответа:
 EROS



Вопросов: 58
Ответов: 4255
 Профиль | | #3 Добавлено: 10.04.07 09:40
Господа, вы ничего не понимаете в этой жизни!! :-))
Он не ищет легких путей, и все хочет сделать сам и своими руками(впрочем как и все низкоуровневые программисты)!!!

Мне вот другое интересно... даже если он и подключится к БД, то что он получит в результате этого запроса?
SELECT * FROM `main` WHERE 1
Номер ответа: 4
Автор ответа:
 GSerg



Вопросов: 0
Ответов: 1876


 Профиль | | #4 Добавлено: 10.04.07 12:43
Мне вот другое интересно... даже если он и подключится к БД, то что он получит в результате этого запроса?

В результате этого запроса он получит все записи из таблицы main.
Это коряво и ненужно, но это сработает.
Номер ответа: 5
Автор ответа:
 Sharp


Лидер форума

ICQ: 216865379 

Вопросов: 106
Ответов: 9979
 Web-сайт: sharpc.livejournal.com
 Профиль | | #5
Добавлено: 10.04.07 13:34
что он получит в результате этого запроса?

А что тебя смутило?
Номер ответа: 6
Автор ответа:
 EROS



Вопросов: 58
Ответов: 4255
 Профиль | | #6 Добавлено: 10.04.07 14:08
А что тебя смутило?

Меня смутило WHERE 1... Условие отбора какое то странное.. обычно пишут WHERE ID=1 или еще что то.. а в этом случае что он пытается выбрать?
Номер ответа: 7
Автор ответа:
 Sharp


Лидер форума

ICQ: 216865379 

Вопросов: 106
Ответов: 9979
 Web-сайт: sharpc.livejournal.com
 Профиль | | #7
Добавлено: 10.04.07 15:44
Ботай SQL :)
WHERE 1 равносильно WHERE TRUE, т.е. условие выбора всегда верно.
Номер ответа: 8
Автор ответа:
 HACKER


 

Разработчик Offline Client

Вопросов: 236
Ответов: 8362
 Профиль | | #8 Добавлено: 10.04.07 19:01
Tricker, создавай сокет, и работай с мускулам на уровне сокета! :)))) Зачем тебе эти апи, реальные пацаны сами шлют в порт мускула данные и получают ответ :))
Номер ответа: 9
Автор ответа:
 EROS



Вопросов: 58
Ответов: 4255
 Профиль | | #9 Добавлено: 10.04.07 20:07
WHERE 1 равносильно WHERE TRUE, т.е. условие выбора всегда верно

Это я и сам догадался.. :-)) Но где условие которое равно TRUE?
Номер ответа: 10
Автор ответа:
 EROS



Вопросов: 58
Ответов: 4255
 Профиль | | #10 Добавлено: 10.04.07 20:08
Зачем тебе эти апи, реальные пацаны сами шлют в порт мускула данные и получают ответ :))

А еще реальные пацаны сами пишут реализацию AES :-)))))))
Номер ответа: 11
Автор ответа:
 Sharp


Лидер форума

ICQ: 216865379 

Вопросов: 106
Ответов: 9979
 Web-сайт: sharpc.livejournal.com
 Профиль | | #11
Добавлено: 10.04.07 20:15
Вот оно - потрясающее в своей очевидности отличие дотнетчика от программиста. Программист прекрасно знает, что для компьютера TRUE это 1 или любое другое ненулевое число. А вот дотнетчик этого не знает, зато от души смеется над людьми, которые считают, что ассемблер полезен для программистов.
Номер ответа: 12
Автор ответа:
 Artyom



Разработчик

Вопросов: 130
Ответов: 6602
 Профиль | | #12 Добавлено: 10.04.07 20:29
1 - это целочисленное, а не логическое значение.

К примеру MS SQL Server такой запрос не выполнит.
Номер ответа: 13
Автор ответа:
 EROS



Вопросов: 58
Ответов: 4255
 Профиль | | #13 Добавлено: 10.04.07 21:52
А вот дотнетчик этого не знает, зато от души смеется над людьми, которые считают, что ассемблер полезен для программистов.

Прикинь, дотнетчик это тоже знает! И на самом деле от души смеется над "программистом", который пишет подобную ахинею WHERE 1 или в кругах низкоуровневых программистов подобный запрос считается нормальным? А еще дотнетчик от души смеется над онанистами которые на досуге занимаются написанием собственной реализации AES, которая уже написана 300 раз на всех языках мира только для того, чтоб потом где нибудь на форуме во все горло орать: Я сам написал реализацию AES! Вот веришь.. мне абсолютно фиолетово как там реализовано и как это работает.. у меня в жизни другие цели и приоритеты.. Я не притендую на Нобелевскую премию в обрасти криптографии, мне нужен инструмент, который поможет решить ту или иную задачу.. и он у меня есть. А пока ты, выпятив грудь колесом, будешь писать и отлаживать собственную реализацию этого алгоритма я сделаю и продам 3 проекта.. Повторюсь, но у каждого свои приоритеты в жизни.. ты мечтаешь о развитии науки, о прогрессе? Для тебя это главное? Вперед! Двигай! Но не надо навязывать свое мнение мне и остальным. Да, знание ассемлера - это хорошо.. не спорю. Но пока я не почувствую в нем потребности - я к нему даже не притронусь. Я с бОльшей охотой освою какой нибудь новый продукт от MS, нежели возьмусь за изучении ассемблера. И причина тому банальна - это более востребовано на рынке, а низкоуровневую реализацию предпочту оставить тебе и тебе подобным, нуждающимся в удовлетворении собственного эго.. а мне надо семью кормить..
Номер ответа: 14
Автор ответа:
 Sharp


Лидер форума

ICQ: 216865379 

Вопросов: 106
Ответов: 9979
 Web-сайт: sharpc.livejournal.com
 Профиль | | #14
Добавлено: 10.04.07 23:38
1 - это целочисленное, а не логическое значение.

Это ты компьютеру объясняй, а не мне. Компу совершенно фиолетово, что у него там в EAX, логическое значение, целое, дробное, строка или вообще мусор. Для него false - это 0. А true - все остальное.

который пишет подобную ахинею WHERE 1 или в кругах низкоуровневых программистов подобный запрос считается нормальным?

Если он выполняется, значит, он нормальный. Значит, так и было предусмотрено создателями СУБД.

Пока ты будешь делать и продавать 3 проекта, я сделаю 30. Просто потому, что я программист более высокой квалификации, могу быстрее и качественнее решать задачи, не обращаясь при этом постоянно за помощью к более опытным коллегам, потому что способен разобраться в своей проблеме сам - от начала и до конца. Потому что я не только знаю "что это должно работать", но и знаю КАК это должно работать.
Номер ответа: 15
Автор ответа:
 Artyom



Разработчик

Вопросов: 130
Ответов: 6602
 Профиль | | #15 Добавлено: 11.04.07 00:03
Это ты компьютеру объясняй, а не мне. Компу совершенно фиолетово, что у него там в EAX, логическое значение, целое, дробное, строка или вообще мусор. Для него false - это 0. А true - все остальное.

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

Если он выполняется, значит, он нормальный. Значит, так и было предусмотрено создателями СУБД.

Вообще такой кусок кода очень в стиле "индусского"
Типа
Dim b as Boolean = True
If Not b Then
   ...
End If

Или
If b.Length = 4 Then
   ....
EndIf

Вполне вероятно что он будет работать.
Но не прикольно потом будет человеку на сопровождении чесать репу и думать что программист хотел этой закорякой сказать.

Просто потому, что я программист более высокой квалификации, могу быстрее и качественнее решать задачи, не обращаясь при этом постоянно за помощью к более опытным коллегам, потому что способен разобраться в своей проблеме сам - от начала и до конца.

Представь себе - я точно такого же мнения о себе.
Или мы сравниваем себя с топикстартером?

Потому что я не только знаю "что это должно работать", но и знаю КАК это должно работать.

Знание "как" это должно работать очень важно. Но редко это сводится к уровню того, как на уровне процессора представляется логическое значение.

Sharp, хорош впадаться в крайности?

Страница: 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам