![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
![]() |
![]()
Сообщение
#1
|
|
Level 4 ![]() ![]() Класс: Маг Характер: True Neutral Раса: Человек ![]() |
DAT Unicode Patch v1.5b
Описание (Description) Данная программа вносит изменения в базу данных DAToolset, что обеспечивает возможность хранения в ней текстовых строк в формате Юникод. The following program changes some aspects in DAToolset database thus ensuring the capability of Unicode text storage. Системные требования (System requirements) - Установленный и работоспособный Dragon Age Toolset - .NET Framework 2.0 или выше - Installed and working Dragon Age Toolset - .NET Framework 2.0 or above Авторы (Staff) Идея создания и алгоритм работы: Ice Blade Реализация: Equilibrium Keeper Тестирование и предложения: Leon PRO Скачать (Download) - 13,6кб http://www.mediafire.com/?tf182l8mub3f5ah http://webfile.ru/4931463 Список изменений: v1.5 - Добавлена поддержка входа на сервер требующий аутентификации - Добавлена возможность изменять типы колонок в несколько типов (для возможности отката изменения) - Все изменения производятся через транзакцию и откатываются в случае неудачи - Убрана возможность создания бэкапа базы данных v1.4 - Добавлена возможность создания бэкапа базы данных v1.3 - Изменен алгоритма получения данных из реестра v1.2 - Добавлена поддержка x86-систем v1.1 - Изменено описание, название, добавлена поддержка английского (по-умолчанию) - Способ подключения к базе данных берется из настроек Toolset'а Сообщение отредактировал EqKeeper - Nov 28 2010, 16:09 |
![]()
Сообщение
#2
|
|
Ушедший на войну ![]() Класс: Маг Характер: Chaotic Good Раса: Человек NWN: Контент ![]() |
Не забываем, что тулсет общается с БД через ф-ции, и там далеко не ntext и тем более не nvarchar.
Если с ntext-ом еще повезло (пока что) то не факт, что nvarchar заработает. EqKeeper Покажи какой SQL запрос отправляешь к БД для сменя типа столбца. Хорошо бы, если бы ты там реализовал Бэкап всей изменяемой таблицы, а то, если что, тебя с в какашках моддеры утопят если их данные поплывут ) Ну и не забудь сделать обфускацию, строгую подпись, самообновление и онлайн счетчик запусков (IMG:style_emoticons/kolobok_light/biggrin.gif) Цитата Если все правит как надо - пытайтесь его сломать, так что бы он вас куда-нибудь послал или убил нафиг базу данных. Легко ) UPD. 1. Ну как и думал. Именно такая ошибка и вылезла =) Почему ты решил что мой тулсет использует тот же ConnectionString что и твой ? (IMG:style_emoticons/kolobok_light/wink3.gif) Может у меня вообще сервер на другой машине =) Личные замечания:
|
![]()
Сообщение
#3
|
|
Level 4 ![]() ![]() Класс: Маг Характер: True Neutral Раса: Человек ![]() |
Цитата Покажи какой SQL запрос отправляешь к БД для сменя типа столбца. Код ALTER TABLE dbo.t_StringText ALTER COLUMN Text nvarchar(max) NULL Цитата Хорошо бы, если бы ты там реализовал Бэкап всей изменяемой таблицы, а то, если что, тебя с в какашках моддеры утопят если их данные поплывут ) А вот это уже будет не "в одну кнопку". (IMG:style_emoticons/kolobok_light/smile.gif) Но если удастся порушить таблицу, то конечно сделаю. Цитата UPD. 1. Ну как и думал. Именно такая ошибка и вылезла =) Хммм? Какая "такая"? (IMG:style_emoticons/kolobok_light/smile.gif) Цитата Дохрена длинное имя файла. Порежим! (IMG:style_emoticons/kolobok_light/smile.gif) Цитата В окне с ошибкой выводи полный стэк. И сделай поле копируемым. НИКТО не будет тебе перепечатывать текст ошибки. (ну разве только истенные фонаты) Хм... кто есть полный стек? А Ctrl+C для чего? (IMG:style_emoticons/kolobok_light/smile.gif) Цитата Тест сделай на инглише лучше. Тогда уж надо делать мультиязычую, ибо большинство наших модеров имеют весьма своеобразные взаимоотношения с английским. (IMG:style_emoticons/kolobok_light/smile.gif) Цитата Database не "RU" а Юникодовой становится =) Т.е. мультиязычной =) Принимается. Цитата Лучше не жаббер и форум а почту укажи. (ну это уже по этикету) Принимается Цитата Не забываем, что тулсет общается с БД через ф-ции, и там далеко не ntext и тем более не nvarchar. На сколько я понимаю, nvarchar принимают любые функции, расчитанные на ntext. А вот наоборот - нет. Сообщение отредактировал EqKeeper - Nov 15 2010, 18:09 |
![]()
Сообщение
#4
|
|
Ушедший на войну ![]() Класс: Маг Характер: Chaotic Good Раса: Человек NWN: Контент ![]() |
Я подправил текст, пока ты печатал сообщение (IMG:style_emoticons/kolobok_light/smile.gif)
|
![]()
Сообщение
#5
|
|
Level 4 ![]() ![]() Класс: Маг Характер: True Neutral Раса: Человек ![]() |
Поправил, продолжаем тестить:
http://www.mediafire.com/?cv5rj7abx9dz5vf http://webfile.ru/4904292 А я пока остальное поправлю. --- Продолжая облагораживать софтину, выяснил. что из nvarchar в ntext он замечательно переводит. Так что, если это будет критично, можно и в ntext - теперь уже не проблема. (Хотя, если проблем с nvarchar не будет, то лучше nvarchar). --- Супер! Попутно освою локализацию WinForms! (IMG:style_emoticons/kolobok_light/smile.gif) --- Освоил. (IMG:style_emoticons/kolobok_light/smile.gif) Теперь это мультиязыковое чудовище... ммм... может, еще прикрутить модуль для работы с переводчиком гугла? (IMG:style_emoticons/kolobok_light/biggrin.gif) Сообщение отредактировал EqKeeper - Nov 15 2010, 22:31 |
![]()
Сообщение
#6
|
|
Ушедший на войну ![]() Класс: Маг Характер: Chaotic Good Раса: Человек NWN: Контент ![]() |
Попутно сделай ей транзакционность, сэкономишь моддерам нервные клетки и повысишь доверие к программе (IMG:style_emoticons/kolobok_light/wink3.gif)
Запустил. На вид - ничего не изменилось, ну имя проги стало короче но жутко мутное =) Назови ее уже "DaUnicode.exe" и не мучайся муками творчества =) Ну и при запуске "В экземпляре не задана ссылка на объект" (IMG:style_emoticons/kolobok_light/nea.gif) P.S. Опщем как перечисленное поправишь - посмотрю опять ) |
![]()
Сообщение
#7
|
|
Level 4 ![]() ![]() Класс: Маг Характер: True Neutral Раса: Человек ![]() |
Продолжаю править. Ошибку он выдал, потому что у тебя в реестре нет записи... куды девал? >_>
Ладно, сейчас сделаю ручной выбор сервера, если не нашли записи в реестре и дефолтного не существует... Увы, DataTable dtServers = SmoApplication.EnumAvailableSqlServers(false); foreach (DataRow row in dtServers.Rows) { string sqlServerName = row["Server"].ToString(); if (row["Instance"] != null && row["Instance"].ToString().Length > 0) sqlServerName += @"\" + row["Instance"].ToString(); MessageBox.Show(sqlServerName); } При выполнении на моей машине выдает лишь ее имя: EK и не видит экземпляра. =\ Впрочем, как честно предупреждали мелкомягкие - ибо метод ненадежен. Так что я сейчас (*зевает*) докручу реестр, чтобы он не падал в оборок при отсутствии ключа и к "одной кнопке", видимо, придется добавить еще и один TextBox... |
![]()
Сообщение
#8
|
|
Level 2 ![]() Класс: Бард Характер: Lawful Good Раса: Человек ![]() |
Хотел попробовать... но буду ждать финальной версии, а то в базе проект висит (жаба давит, а то вдруг чего с ней случится (IMG:style_emoticons/kolobok_light/smile.gif) )
|
![]()
Сообщение
#9
|
|
Level 4 ![]() ![]() Класс: Маг Характер: True Neutral Раса: Человек ![]() |
Блин, что-то я немного не туда копал... Там же лежит уже готовая строчка для соединения. И без нее редактор в любом случае не запустится! (IMG:style_emoticons/kolobok_light/smile.gif)
Правда, я пользовал SQLConnection, а она под OleDb... но эт дело десятое. Сейчас... (интересно, я сегодня спать буду?..) --- Нашел причину твоей ошибки - богомерзки WOW6432Node. Сейчас поправлю. --- Фссссссссссссссссё! Тестируйте. Ну, и разумеется, всевозможные варианты убийства программы или базы с её помощью только приветствуются! http://www.mediafire.com/?0z4rewacewkz8qs http://www.rapidshare.ru/1689271 http://webfile.ru/4905331 http://zalil.ru/upload/29977037 Сообщение отредактировал EqKeeper - Nov 16 2010, 05:03 |
![]()
Сообщение
#10
|
|
Ушедший на войну ![]() Класс: Маг Характер: Chaotic Good Раса: Человек NWN: Контент ![]() |
Цитата Блин, что-то я немного не туда копал... Там же лежит уже готовая строчка для соединения. И без нее редактор в любом случае не запустится! Наконец то =) *бурные, несмолкающие аплодисменты* (IMG:style_emoticons/kolobok_light/biggrin.gif) Цитата Хотел попробовать... но буду ждать финальной версии, а то в базе проект висит (жаба давит, а то вдруг чего с ней случится smile.gif) Лучше не торопитсья, да. |
![]()
Сообщение
#11
|
|
Level 4 ![]() ![]() Класс: Маг Характер: True Neutral Раса: Человек ![]() |
(IMG:style_emoticons/kolobok_light/thank_you.gif)
А что касается транзакционности... А оно надо? (IMG:style_emoticons/kolobok_light/unsure.gif) Альтер табл если работу начнет, то проведет до конца. А если не начнет, то и не изменит ничего. (IMG:style_emoticons/kolobok_light/smile.gif) Как оно, господа? Работает? Редактор буковки понимать не разучился? |
![]()
Сообщение
#12
|
|
Ушедший на войну ![]() Класс: Маг Характер: Chaotic Good Раса: Человек NWN: Контент ![]() |
Внес версионность - это гут, однако имя файла не говорит о версии, только имя архива. Даже сам файл в метаданных не указывает на ту версию, что указана на имени архива. Просто включи инкремент версии сборки при паблишинге в настройках проекта, а потом при архивировании просто указывай ее в имени архива, взяв руками из метаданных. Сам не запутаешься и пользователь не запутается. Я не предлагаю указывать версию в имени экзешника, т.к. в этом есть как + так и -
Ну и будучи перфекционистом я предложил бы еще (как сделал бы я) - Заменить текст на кнопке на "Patch Database" - И же, тебе будет полезнее, если ты будешь получат весь Exception через Exception.ToString() для этого, конечно, придется сменить диалоговое окно об ошибке на соответвующее. - Всетаки сделай бэкап таблицы/столбца =) (например в новую таблицу) Ну и о главном: В экземпляре объекта не задана ссылка на объект. в DATDbPatch.FormMain.button1_Click(Object sender, EventArgs e) P.S. Не знал, что текст диалогового окна можно скопировать на Ctrl+C (IMG:style_emoticons/kolobok_light/biggrin.gif) Век живи - век учись, блин =) |
![]()
Сообщение
#13
|
|
Level 4 ![]() ![]() Класс: Маг Характер: True Neutral Раса: Человек ![]() |
Цитата Внес версионность - это гут, однако имя файла не говорит о версии, только имя архива. Даже сам файл в метаданных не указывает на ту версию, что указана на имени архива. Просто включи инкремент версии сборки при паблишинге в настройках проекта, а потом при архивировании просто указывай ее в имени архива, взяв руками из метаданных. Сам не запутаешься и пользователь не запутается. Я не предлагаю указывать версию в имени экзешника, т.к. в этом есть как + так и - Принято. Цитата - Заменить текст на кнопке на "Patch Database" Ммм... а русском: "Испортить базу данных"? (IMG:style_emoticons/kolobok_light/smile.gif) Цитата - И же, тебе будет полезнее, если ты будешь получат весь Exception через Exception.ToString() для этого, конечно, придется сменить диалоговое окно об ошибке на соответвующее. На соответствующее - это нарисовать модальную форму? Или есть готовые решения? Цитата - Всетаки сделай бэкап таблицы/столбца =) (например в новую таблицу) Ммм... сделать копию и оставить в базе болтаться?.. и в ридмишку добавить? Цитата Ну и о главном: В экземпляре объекта не задана ссылка на объект. в DATDbPatch.FormMain.button1_Click(Object sender, EventArgs e) *застрелился* Слушай, глянь на строчку... Может, это я ошибся? У тебя по этому адресу в реестре есть ключик "DefaultDatabaseConnection"? Код "SOFTWARE\\" + (IntPtr.Size == 8 ? "Wow6432Node\\" : "") + "BioWare\\Dragon Age\\Toolset\\Environment"
|
![]()
Сообщение
#14
|
|
Ушедший на войну ![]() Класс: Маг Характер: Chaotic Good Раса: Человек NWN: Контент ![]() |
Нет, я сейчас на работе (IMG:style_emoticons/kolobok_light/smile.gif)
Но, допустим я типичный американский подросток, который думает, что у него стоит ДА, и что он моддер, хотя у него на самом деле чистая ОС (IMG:style_emoticons/kolobok_light/biggrin.gif) Цитата Или есть готовые решения? ХЗ, можно ли вызвать стандартное диалоговое окно эксепшна программы, которое вызывает система (там внизу есть еще текстовое поле, куда она полный текст эксепшна сбрасывает. Я таким не пользовался пока что, но сам задумался сегодня (поискать - времени уже не было). Ну на крайняк сам набросай такое из формы, кнопки, лейбла и текстбокса ) Да и еще. Сделать ресурсы внедренными никак? В идеале просто 1 экзешник чтобы получился. Кстати, программа в принципе может существовать всего в 2х вариантах - на русском и английском, бОльшее, думаю уже излишним будет - это решит вопрос с внешними ресурсами. P.S. Можешь добавитm и мое мыло, я не гордый, но приятно (IMG:style_emoticons/kolobok_light/biggrin.gif) (Leonn СОБАКО mail ТОЧКА ru) |
![]()
Сообщение
#15
|
|
Level 4 ![]() ![]() Класс: Маг Характер: True Neutral Раса: Человек ![]() |
Цитата Но, допустим я типичный американский подросток, который думает, что у него стоит ДА, и что он моддер, хотя у него на самом деле чистая ОС Окей, сейчас сделаю проверку и маты. (IMG:style_emoticons/kolobok_light/smile.gif) А ошибку он выдал у тебя тоже с работы ( (IMG:style_emoticons/kolobok_light/rolleyes.gif) ) или из дома? (IMG:style_emoticons/kolobok_light/sad.gif) Цитата ХЗ, можно ли вызвать стандартное диалоговое окно эксепшна программы, которое вызывает система (там внизу есть еще текстовое поле, куда она полный текст эксепшна сбрасывает. Я таким не пользовался пока что, но сам задумался сегодня (поискать - времени уже не было). Да, я вот вчера тоже заинтересовался. (IMG:style_emoticons/kolobok_light/smile.gif) Сейчас покумекаю. Цитата Да и еще. Сделать ресурсы внедренными никак? В идеале просто 1 экзешник чтобы получился. Кстати, программа в принципе может существовать всего в 2х вариантах - на русском и английском, бОльшее, думаю уже излишним будет - это решит вопрос с внешними ресурсами. Касательно этого сейчас попробую. (IMG:style_emoticons/kolobok_light/smile.gif) Цитата P.S. Можешь добавитm и мое мыло, я не гордый, но приятно biggrin.gif (Leonn СОБАКО mail ТОЧКА ru) Запросто! (IMG:style_emoticons/kolobok_light/smile.gif) |
![]()
Сообщение
#16
|
|
Ушедший на войну ![]() Класс: Маг Характер: Chaotic Good Раса: Человек NWN: Контент ![]() |
Последнюю - с работы. К слову у меня тут даже MSSQL не стоит, не то что DA (IMG:style_emoticons/kolobok_light/crazy.gif)
Вчерашнюю - из дома. |
![]()
Сообщение
#17
|
|
Level 4 ![]() ![]() Класс: Маг Характер: True Neutral Раса: Человек ![]() |
Ну, вчерашняя и не должна была работать. Она свято верила, что ты сидишь под 64-битной виндой. (IMG:style_emoticons/kolobok_light/smile.gif) В эту просто проверку сейчас впаяю. (IMG:style_emoticons/kolobok_light/smile.gif)
Итак следующая версия, научившаяся следить за тем есть ли на машине юзера база тулсета. Тестим, мучаем. Сообщения пока оставил теми же, времени немного не хватает. http://www.mediafire.com/?3napjmi1n2330hm http://www.rapidshare.ru/1689860 http://webfile.ru/4906893 http://zalil.ru/29979347 |
![]()
Сообщение
#18
|
|
Ушедший на войну ![]() Класс: Маг Характер: Chaotic Good Раса: Человек NWN: Контент ![]() |
Тестил дома на машине, на которой есть все.
--------------------------- Dragon Age Toolset Database Patch - Error! --------------------------- Во время работы произошла ошибка! Если вы не знаете почему это произошло или уверены, что вашей вины в этом нет, пожалуйста свяжитесь со мной! email: equilibriumkeeper@yandex.ru jabber: equilibriumkeeper@jabber.ru forum: http://www.city-of-masters.ru/forums/index.php?showforum=116 В сообщении укажите нижеследующую информацию (вы можете скопировать ее нажав Ctrl+C): [DBNETLIB][ConnectionOpen (Connect()).]SQL-сервер не существует, или отсутствует доступ. в System.Data.OleDb.OleDbConnectionInternal..ctor(Ol eDbConnectionString constr, OleDbConnection connection) в System.Data.OleDb.OleDbConnectionFactory.CreateCon nection(DbConnectionOptions options, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningObject) в System.Data.ProviderBase.DbConnectionFactory.Creat eNonPooledConnection(DbConnection owningConnection, DbConnectionPoolGroup poolGroup) в System.Data.ProviderBase.DbConnectionFactory.GetCo nnection(DbConnection owningConnection) в System.Data.ProviderBase.DbConnectionClosed.OpenCo nnection(DbConnection outerConnection, DbConnectionFactory connectionFactory) в System.Data.OleDb.OleDbConnection.Open() в DATDbPatch.FormMain.button1_Click(Object sender, EventArgs e) --------------------------- ОК --------------------------- |
![]()
Сообщение
#19
|
|
Level 4 ![]() ![]() Класс: Маг Характер: True Neutral Раса: Человек ![]() |
Как проснусь посмотрю... (IMG:style_emoticons/kolobok_light/unsure.gif)
|
![]()
Сообщение
#20
|
|
Level 5 ![]() Класс: Обыватель Характер: Lawful Neutral Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени ![]() |
можно под программу сделать отдельную тему (и соотв. ссылаться на нее, а не на раздел). И перенести туда посты отсюда, посвященные именно программе, а не процессу дрессировки тулсета.
|
![]()
Сообщение
#21
|
|
Ушедший на войну ![]() Класс: Маг Характер: Chaotic Good Раса: Человек NWN: Контент ![]() |
Можно =)
Кто перенесет-то ? =) |
![]()
Сообщение
#22
|
|
Level 5 ![]() Класс: Обыватель Характер: Lawful Neutral Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени ![]() |
Сделал. Пост автора программы первый, поэтому он может поменять название темы на нужное.
|
![]()
Сообщение
#23
|
|
Ушедший на войну ![]() Класс: Маг Характер: Chaotic Good Раса: Человек NWN: Контент ![]() |
Кипер, актуальные версии, полагаю, лучше помещать в первый пост и обновлять его.
Хорошо бы вести там чендж лог от версии к версии. |
![]()
Сообщение
#24
|
|
Отверженный ![]() ![]() ![]() ![]() Класс: Теневой Танцор Характер: Neutral Good Раса: Баатезу ![]() |
Не приложил исходники - подозрительно. А вдруг там вирусня закодирована? Я бы даже не притронулся к экзешке на вашем месте.
|
![]()
Сообщение
#25
|
|
Ушедший на войну ![]() Класс: Маг Характер: Chaotic Good Раса: Человек NWN: Контент ![]() |
Гы, вирус - жжошь =)
Ну, я рефлектором проверил сначала (IMG:style_emoticons/kolobok_light/ph34r.gif) (IMG:style_emoticons/kolobok_light/biggrin.gif) А на случай случайного заражения - стоит антивирь. С одной стороны ты прав. С другой стороны, даже если закодить деструктивные действия, кто разберется во всем коде, если там около несколько сотен строк? (IMG:style_emoticons/kolobok_light/wink3.gif) К тому же, где гарантия, что будут исходники именно этого экзешника =) В третьих - давать или не давать исходники - дело сугубо личное, я бы даже сказал интимное. В четвертых, качая с ваулта или сошиал биовэр - никто почему-то не спрашивает доказательства и исходники (IMG:style_emoticons/kolobok_light/smile.gif) |
![]() ![]() |
Текстовая версия | Сейчас: 26th April 2025 - 02:46 |