GAMER писал(а):но есть задачи, когда спрогнозировать действия невозможно (например при разработке клиента аля mysql)
Ну, собственно, ничего сложного в прогнозировании и нет. Единственная причина, которая заставляет использовать метод Open (или другими словами - создать DataSet) - это когда сервер передал Вам пакет с данными выборки. Опять же, единственным возможным оператором запроса для этого являтся первое слово SELECT в запросе.
Так что Вашего пессимизма в отношении прогнозирования я ни в коей мере не разделяю.
GAMER писал(а):У меня в некоторых случаях тоже не меняется.
Надо найти причины - когда меняется. По тому примеру, что Вы привели меняться ничего не должно, просто нет никаких предпосылок для этого. Другое дело, если бы Вы вместо статической переменной qmysql в
mysql_init(PMySQL(@qmysql)); использовали динамическую переменную, типа PMYSQL (что, собственно, куда логичнее для того вида процедуры, что Вы привели) в том виде, что у Вас написано, то можно было бы предположить, что испорчена чужая память (в данном случае переменной MyUser), но поскольку переменная именно статическая, то память под неё уже выделена компилятором и в чужие дебри процедура mysql_init() залезть не может.
На самом деле я первый раз слышу о такой проблеме. Ни у меня, ни где нибудь ещё в интернете, я такого не встречал никогда.
Добавлено спустя 5 минут 24 секунды:GAMER писал(а):просто было подозрение, что использую какую-то служебную переменную
Скорее нет, чем да. Т.к. если бы внутри dll-ки находилась бы переменная с точно таким же названием, то у неё другая область видимости. Да и в pas-модуле такой переменной нет, даже если не принимать во внимание ту самую область видимости переменной.