|
|
|
Редактирование OCX
|
|||
|---|---|---|---|
|
#18+
Товарищи форумчане, есть такая проблема: Существует осх, стороннего разработчика. В нем есть SQL-запрос который надо отредактироватью. Самих исходных кодов нет. Вопросы: Есть ли какие-нибудь проги позволяющие отредактировать файл не изменяя его структуру? Может я что-то не так понимаю и такая задача вообще не решаема? Просто сама строчка с запросом найдена, а дабавить надо фактически всего одно поле.. Заранее благодарю за помощь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2009, 10:46:48 |
|
||
|
Редактирование OCX
|
|||
|---|---|---|---|
|
#18+
Евгений_Анатольевич пишет: > Существует осх, стороннего разработчика. В нем есть SQL-запрос который > надо отредактироватью. Самих исходных кодов нет. Если запрос лежит в ресурсах, то это очень просто -- берёшь любой редактор ресурсов (например, Visual Studio) и правишь, при этом результат успешный гарантирован на 100%. Если нет, то это практически невозможно. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2009, 11:22:39 |
|
||
|
Редактирование OCX
|
|||
|---|---|---|---|
|
#18+
MasterZiv Евгений_Анатольевич пишет: > Существует осх, стороннего разработчика. В нем есть SQL-запрос который > надо отредактироватью. Самих исходных кодов нет. Если запрос лежит в ресурсах, то это очень просто -- берёшь любой редактор ресурсов (например, Visual Studio) и правишь, при этом результат успешный гарантирован на 100%. Если нет, то это практически невозможно. Открыл в редакторе(LordPE и PETools) и тот и другой показали наличие 4х секций. ни в одну из этих секций не попадает блок, который надо отредактировать.. :( А не поделитесь почему это невозможно? На сколькоя я догадываюсь (в этом вопросе вообще не разбираюсь), в файле прописано где какие блоки, заголовки и что к чему относится. Но есди это так, то увеличениеколичества символов в одном блоке - приведет к смещению по всем блокам и следовательно увеличению всего файла. Разве невозможно отредактировать соответственно все эти хранящиеся значения с учетом изменений? Или я вообще как-то не так понимаю данную проблему? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2009, 11:45:35 |
|
||
|
Редактирование OCX
|
|||
|---|---|---|---|
|
#18+
Это возможно. Но не исключено, что для этого надо будет удлиннить секцию инициализированных данных, перенести новый текст запроса, или измененные куски запроса, если он собирается из нескольких частей, в освободившееся место (это не так сложно), а затем прошерстить секцию кода на предмет использования адресов этих строк в различных вызовах функций (вот это, теоретически, может оказаться уже не совсем тривиальной задачей). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2009, 11:58:26 |
|
||
|
Редактирование OCX
|
|||
|---|---|---|---|
|
#18+
Интересно было бы посмотреть на строку,которая находится в OCX, и на ту, которую хотелось бы вставить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2009, 12:18:26 |
|
||
|
Редактирование OCX
|
|||
|---|---|---|---|
|
#18+
Евгений_Анатольевич пишет: > Открыл в редакторе(LordPE и PETools) и тот и другой показали наличие 4х > секций. ни в одну из этих секций не попадает блок, который надо > отредактировать.. :( Надо открывать в редакторе ресурсов. > А не поделитесь почему это невозможно? На сколькоя я догадываюсь (в этом > вопросе вообще не разбираюсь), в файле прописано где какие блоки, Потому что оптимизирующие компиляторы современные очень сложны, а дизасемблеры - тупы. И 100% обратный инжениринг кода из бинарного практически невозможен, с моей точки зрения. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2009, 12:54:58 |
|
||
|
Редактирование OCX
|
|||
|---|---|---|---|
|
#18+
Евгений_Анатольевич Существует осх, стороннего разработчика. В нем есть SQL-запрос который надо отредактироватью. Самих исходных кодов нет. Если запрос динамический, или генерится каким-то ORM - тогда пиши пропало. В тектовом представлении он существует только в момент исполнения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2009, 13:35:11 |
|
||
|
Редактирование OCX
|
|||
|---|---|---|---|
|
#18+
VowkИнтересно было бы посмотреть на строку,которая находится в OCX, и на ту, которую хотелось бы вставить. легко: сейчас так: Код: plaintext 1. а надо так: Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2009, 13:48:38 |
|
||
|
Редактирование OCX
|
|||
|---|---|---|---|
|
#18+
Товарищи, может я объясняю фигово.. При открытии обычным блокнотом можно в тексте ОСХ найти указанную выше строчку кода =) ни о какой декомпиляции или дизассемблировании речи не идет. нужно фактически в уже рабочем созданном файле дописать нужные данные. п.с. сам ОСХ написан 6 Дельфях, если это имеет значение :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2009, 13:56:12 |
|
||
|
Редактирование OCX
|
|||
|---|---|---|---|
|
#18+
Не получится. OCX ничего не знает о дополнительных данных, которые необходимо добавить. ЗЫ: я бы посмотрел в сторону триггеров БД. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2009, 13:59:21 |
|
||
|
Редактирование OCX
|
|||
|---|---|---|---|
|
#18+
значение по умолчанию в столбец UserID нельзя разве поставить? тем более, что действительно, ocx не знает о том, какое значение подставлять в запрос. Грохнется всё у вас по-любому ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2009, 14:05:22 |
|
||
|
Редактирование OCX
|
|||
|---|---|---|---|
|
#18+
MazoHistНе получится. OCX ничего не знает о дополнительных данных, которые необходимо добавить. ЗЫ: я бы посмотрел в сторону триггеров БД. egorychзначение по умолчанию в столбец UserID нельзя разве поставить? тем более, что действительно, ocx не знает о том, какое значение подставлять в запрос. Грохнется всё у вас по-любому хм.. вся попа в том, что узнать кто юзер невозможно, потому что приложение клиент-серверное и эти данные отправляются с клиента(о юзере).. были мысли привязать пользователей через SPID и юзверей которые на них висят, но такая лажа получилась, что это приложение не держит ни нормальную виндовую аутентификацию - ни аутентификацию средствами БД.. Тоесть пользователя БД для приложения создаешь одного и по его правам все подключаются.. :( То есть по спиду невозможно идентифиуировать пользователя, а соостветственно и вписать эти данные в БД триггером.. Если есть какие-то соображения как это реализовать - буду благодарен :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2009, 15:20:35 |
|
||
|
Редактирование OCX
|
|||
|---|---|---|---|
|
#18+
+ то есть в этой системе своя таблица где хранится список пользователей и их айдишники, которые потом используются. а привязки этих внутрисистемных пользователей к БД-шным пользователям или виндовым - нет... :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2009, 15:23:19 |
|
||
|
Редактирование OCX
|
|||
|---|---|---|---|
|
#18+
субд какой? должны в ней быть встроенные средства определения пользователя, пославшего запрос Евгений_Анатольевичесть в этой системе своя таблица где хранится список пользователей и их айдишники, которые потом используются. а привязки этих внутрисистемных пользователей к БД-шным пользователям или виндовым - нет придётся сделать один раз и не мучаться потом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2009, 15:35:19 |
|
||
|
Редактирование OCX
|
|||
|---|---|---|---|
|
#18+
egorychсубд какой? должны в ней быть встроенные средства определения пользователя, пославшего запрос Евгений_Анатольевичесть в этой системе своя таблица где хранится список пользователей и их айдишники, которые потом используются. а привязки этих внутрисистемных пользователей к БД-шным пользователям или виндовым - нет придётся сделать один раз и не мучаться потом. MS SQL 2000, создал тему в соответсвующем разделе. Посмотрим, что посоветуют спецы.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2009, 16:26:31 |
|
||
|
Редактирование OCX
|
|||
|---|---|---|---|
|
#18+
кури в сторону user_id( user_name() ) ставишь это как default constraint в своём поле userID - будет текущий пользователь БД. связующую таблицу между юзерами БД и ocx сделать всё равно придётся, без неё не обойтись, имхо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2009, 17:33:13 |
|
||
|
Редактирование OCX
|
|||
|---|---|---|---|
|
#18+
egorychкури в сторону user_id( user_name() ) ставишь это как default constraint в своём поле userID - будет текущий пользователь БД. связующую таблицу между юзерами БД и ocx сделать всё равно придётся, без неё не обойтись, имхо. Ты думаешь в эту сторону я еще не курил? :) Евгений_Анатольевичбыли мысли привязать пользователей через SPID и юзверей которые на них висят, но такая лажа получилась, что это приложение не держит ни нормальную виндовую аутентификацию - ни аутентификацию средствами БД.. Тоесть пользователя БД для приложения создаешь одного и по его правам все подключаются.. :( То есть по спиду невозможно идентифиуировать пользователя, а соостветственно и вписать эти данные в БД триггером.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2009, 17:37:29 |
|
||
|
Редактирование OCX
|
|||
|---|---|---|---|
|
#18+
я просто не понял, что такое SPID ))) т.е. к базе все подключены одним логином? сочувствую тогда ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2009, 17:42:33 |
|
||
|
Редактирование OCX
|
|||
|---|---|---|---|
|
#18+
Мне так думается, что добавив в списке values еще один %d мы ничего не добьемся, т.к. эта строка, скорее всего используется в ф-ции format(s : string; [args] : array of трам пам пам). Кто будет в этот массив добавлять при ее вызове еще и UserID? Оптимальным, недорогим способом будет сделать: 1 - привязку к IP-адресам пользователей и разруливать все уже в базе. Если DHCP или юзера непривязываемы к адресам машин, то 2 - купить исходники OCX у того, у кого они есть 3 - написать этот хренов OCX самому. ЗЫ. Кстати, все больше сталкиваюсь с задачами, которые дешевле всего не решать вообще. На самом деле НЕ РЕШАТЬ. Приходится обосновывать, получается. Это что? Старость? Мудрость? Хитрость? :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2009, 20:56:54 |
|
||
|
Редактирование OCX
|
|||
|---|---|---|---|
|
#18+
Или, может, исходники самой проги в наличии, и эта ф-ция вызывается из приложения, пользующего OCX? Тогда имеет смысл посношаться, если уверены, что больше ничего "улучшить" не захочется. Но если первое предположение верно, то это такой плохой OCX, что лучше, действительно, написать новый. Просто не могу себе представить ситуацию, в которой такая реализация могла бы показаться разумной хоть кому-нибудь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2009, 21:12:58 |
|
||
|
Редактирование OCX
|
|||
|---|---|---|---|
|
#18+
Вам повезло. Открываете фал в любом hex-editore и прямо в нем меняете старый текст запроса на новый побайтно. Главное что-бы новый текст запроса поместился поверх старого. В вашем случае новый запрос немного длиннее старого, поэтому надо найти как влезть в отведенный размер. Например можно: вместо прямого инсерта с перечислением всех столбцов сделать вызов заранее написааной вами хранимой процедуры: exec my_insert(...) может завести альяс какой-нибудь на таблицу и обращаться к ней по нему, главное что-бы он позволил сократить блину запроса в байтах. (другие варинаты) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2009, 21:42:49 |
|
||
|
Редактирование OCX
|
|||
|---|---|---|---|
|
#18+
Ggg_old, В общем правильно, но что делать с последним %d? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2009, 22:11:33 |
|
||
|
Редактирование OCX
|
|||
|---|---|---|---|
|
#18+
Евгений_Анатольевич пишет: > а надо так: > > insert INTO uktd_cOVERSOnInventory(InventoryId,CoverId,Area,Dan3,SubdivisionId,State,PRVIV,UserID) > values (%d,%d,%s,'%s',%d,*1*,%d,%d) Ну хорошо, допустим, формат ты поправишь. А кто тебе в параметры функции ЕЩЁ ОДНУ ПЕРМЕННУЮ ЗАПИХНЁТ ? Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2009, 22:13:23 |
|
||
|
Редактирование OCX
|
|||
|---|---|---|---|
|
#18+
Евгений_Анатольевич пишет: > Товарищи, может я объясняю фигово.. Товарищь, ты только не обижайся. Но с таким уровнем понимания проблемы ИМЕННО ТЫ эту проблему ВРЯД ЛИ РЕШИШ. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2009, 22:14:33 |
|
||
|
|

start [/forum/topic.php?fid=16&msg=35916263&tid=1344556]: |
0ms |
get settings: |
11ms |
get forum list: |
20ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
185ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
88ms |
get tp. blocked users: |
2ms |
| others: | 235ms |
| total: | 565ms |

| 0 / 0 |
