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
- http://www.microsoft.com/downloads/details.aspx?FamilyID=0856eacb-4362-4b0d-8edd-aab15c5e04f5&displayLang=ru или выше
- Installed and working Dragon Age Toolset
- http://www.microsoft.com/downloads/en/details.aspx?FamilyID=0856eacb-4362-4b0d-8edd-aab15c5e04f5&displaylang=en 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'а
Не забываем, что тулсет общается с БД через ф-ции, и там далеко не ntext и тем более не nvarchar.
Если с ntext-ом еще повезло (пока что) то не факт, что nvarchar заработает.
EqKeeper
Покажи какой SQL запрос отправляешь к БД для сменя типа столбца.
Хорошо бы, если бы ты там реализовал Бэкап всей изменяемой таблицы, а то, если что, тебя с в какашках моддеры утопят если их данные поплывут )
Ну и не забудь сделать обфускацию, строгую подпись, самообновление и онлайн счетчик запусков
Я подправил текст, пока ты печатал сообщение
Поправил, продолжаем тестить:
http://www.mediafire.com/?cv5rj7abx9dz5vf
http://webfile.ru/4904292
А я пока остальное поправлю.
---
Продолжая облагораживать софтину, выяснил. что из nvarchar в ntext он замечательно переводит. Так что, если это будет критично, можно и в ntext - теперь уже не проблема. (Хотя, если проблем с nvarchar не будет, то лучше nvarchar).
---
Супер! Попутно освою локализацию WinForms!
---
Освоил. Теперь это мультиязыковое чудовище... ммм... может, еще прикрутить модуль для работы с переводчиком гугла?
Попутно сделай ей транзакционность, сэкономишь моддерам нервные клетки и повысишь доверие к программе
Запустил. На вид - ничего не изменилось, ну имя проги стало короче но жутко мутное =)
Назови ее уже "DaUnicode.exe" и не мучайся муками творчества =)
Ну и при запуске "В экземпляре не задана ссылка на объект"
P.S. Опщем как перечисленное поправишь - посмотрю опять )
Продолжаю править. Ошибку он выдал, потому что у тебя в реестре нет записи... куды девал? >_>
Ладно, сейчас сделаю ручной выбор сервера, если не нашли записи в реестре и дефолтного не существует...
Увы,
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...
Хотел попробовать... но буду ждать финальной версии, а то в базе проект висит (жаба давит, а то вдруг чего с ней случится )
Блин, что-то я немного не туда копал... Там же лежит уже готовая строчка для соединения. И без нее редактор в любом случае не запустится!
Правда, я пользовал SQLConnection, а она под OleDb... но эт дело десятое. Сейчас... (интересно, я сегодня спать буду?..)
---
Нашел причину твоей ошибки - богомерзки WOW6432Node. Сейчас поправлю.
---
Фссссссссссссссссё!
Тестируйте. Ну, и разумеется, всевозможные варианты убийства программы или базы с её помощью только приветствуются!
http://www.mediafire.com/?0z4rewacewkz8qs
http://www.rapidshare.ru/1689271
http://webfile.ru/4905331
http://zalil.ru/upload/29977037
А что касается транзакционности... А оно надо?
Альтер табл если работу начнет, то проведет до конца. А если не начнет, то и не изменит ничего.
Как оно, господа? Работает? Редактор буковки понимать не разучился?
Внес версионность - это гут, однако имя файла не говорит о версии, только имя архива. Даже сам файл в метаданных не указывает на ту версию, что указана на имени архива. Просто включи инкремент версии сборки при паблишинге в настройках проекта, а потом при архивировании просто указывай ее в имени архива, взяв руками из метаданных. Сам не запутаешься и пользователь не запутается. Я не предлагаю указывать версию в имени экзешника, т.к. в этом есть как + так и -
Ну и будучи перфекционистом я предложил бы еще (как сделал бы я)
- Заменить текст на кнопке на "Patch Database"
- И же, тебе будет полезнее, если ты будешь получат весь Exception через Exception.ToString() для этого, конечно, придется сменить диалоговое окно об ошибке на соответвующее.
- Всетаки сделай бэкап таблицы/столбца =) (например в новую таблицу)
Ну и о главном:
В экземпляре объекта не задана ссылка на объект.
в DATDbPatch.FormMain.button1_Click(Object sender, EventArgs e)
P.S. Не знал, что текст диалогового окна можно скопировать на Ctrl+C Век живи - век учись, блин =)
Нет, я сейчас на работе
Но, допустим я типичный американский подросток, который думает, что у него стоит ДА, и что он моддер, хотя у него на самом деле чистая ОС
Последнюю - с работы. К слову у меня тут даже MSSQL не стоит, не то что DA
Вчерашнюю - из дома.
Ну, вчерашняя и не должна была работать. Она свято верила, что ты сидишь под 64-битной виндой. В эту просто проверку сейчас впаяю.
Итак следующая версия, научившаяся следить за тем есть ли на машине юзера база тулсета. Тестим, мучаем.
Сообщения пока оставил теми же, времени немного не хватает.
http://www.mediafire.com/?3napjmi1n2330hm
http://www.rapidshare.ru/1689860
http://webfile.ru/4906893
http://zalil.ru/29979347
Тестил дома на машине, на которой есть все.
---------------------------
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)
---------------------------
ОК
---------------------------
Как проснусь посмотрю...
можно под программу сделать отдельную тему (и соотв. ссылаться на нее, а не на раздел). И перенести туда посты отсюда, посвященные именно программе, а не процессу дрессировки тулсета.
Можно =)
Кто перенесет-то ? =)
Сделал. Пост автора программы первый, поэтому он может поменять название темы на нужное.
Кипер, актуальные версии, полагаю, лучше помещать в первый пост и обновлять его.
Хорошо бы вести там чендж лог от версии к версии.
Не приложил исходники - подозрительно. А вдруг там вирусня закодирована? Я бы даже не притронулся к экзешке на вашем месте.
Гы, вирус - жжошь =)
Ну, я рефлектором проверил сначала
А на случай случайного заражения - стоит антивирь.
С одной стороны ты прав.
С другой стороны, даже если закодить деструктивные действия, кто разберется во всем коде, если там около несколько сотен строк?
К тому же, где гарантия, что будут исходники именно этого экзешника =)
В третьих - давать или не давать исходники - дело сугубо личное, я бы даже сказал интимное.
В четвертых, качая с ваулта или сошиал биовэр - никто почему-то не спрашивает доказательства и исходники
В консоли:
Во время работы произошла ошибка...
В диалоге:
---------------------------
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)
---------------------------
ОК
---------------------------
И оставь в покое уже мою ветку LOCAL_MASHINE , бери значение из CURRENT_USER и не DefaultDatabaseConnection а DatabaseConnection.
Вот злодей!
Проблема в том, что у меня она как раз в локал машин, а куррент юзере ее нет. =\ (Ибо я умный (и скромный) и когда писал просмотрел весь реестр - других записей не обнаружилось)
И есть только дефолт... проверять все, в порядке приоритетов?
Я бы проверял все в порядке нормальных шансов.
У большинства юзеров, думаю, в CURRENT_USER.
Но, я сам модифицировал connection string через тулсет-конфигуратор. Выглядит он у меня вот так:
Ну как это нельзя ???? Только для этого надо использовать OleDB провайдера (скорее всего они его и юзают)
В примере ниже я использовал полный копипаст своей строки, только заэкранировал кавычки:
Какое изысканное извращение. )) Блин, а я так не умею. Спасибо за код. Регулярки мне нравятся больше, но в познователньых целях - очень даже!
Не обращай внимания, я просто почему-то решил, что SQLNCLI10.1 используется для SqlConnection и OleDb его не понимает. С базами работаю 2ой раз в жизни, так что какие провайдеры с какими классами работают не знаю. Обычно вбиваю в msdn и беру один из примеров. Тогда проблем нет! Просто переберу все ключики реестра.
---
Вау! Почитал про Dictonary - влюбился! ) Мои любимые универсальные хэши из Руби возвращаются! А я мучался с Хэштабл. ))
---
Хмм... а где в тулсете настраивается подключение? Я что-то в Опциях не нашел, а других настроек не увидел... >_>
---
Кстати, а мелкомягкие злодеи напрочь убили возможность получить доступ к корню реестра? Тоесть, пользуясь их классом Registry плясать можно только от конкретного раздела, но не от корня?
---
Готово! Тестируйте.
В папке с тулсетом есть экзешник конфигуратора.
И там же, обрати внимание есть галка "use default configuration" - возможно именно она и определяет что тулсетина начинает ломиться в Локал Мэшин -> дефолт Коннекшн.
Я строку подключения и беру. Целиком. Ибо как ты сам и говорил - юзаю OleDb, следовательно вручную смысла не имеет. Так что, если работает тулсет, должен работать и патч. Не работает тулсет - идут лесом с ошибкой. Или ты имеешь ввиду сделать отдельный ругателньый экзепшен на случай, если строчку получили, а приконектиться не смогли?
Насчет экзешника - пасиб. Сейчас и проверю.
Блин, Леон, ты хоть под теги это безобразие прячь и лишнее убивай. А то я уж сам запутался - что у тебя получилось, а что нет.
Каши там нет. Если она обвалилась, то просто обвалилась не внеся никаких изменений (во всяком случае, теоретически).
---
Это и есть тот самый Exeption.ToString()
---
Провис он на таймауте... весело... Сейчас увеличу дефолтный. Заодно родилась еще одна страшная мысля - а что если сервер упадет во время работы... Нда... Все-таки надо бэкапить оригинальную таблицу. Причем дважды. И во второй раз изменять уже ее, а после ставить на место оригинальной...
Короче, по SSPI соединяется, по Login password - нет.
даже если и соединяется - базу не патчит, рушится в середине работы. И нет гарантии что не превращает данные в таблице в кашу. Вообще, судя по тому как у меня заработал винчестер во время трансформации - такое ощущение, что он там как минимум многомегабайтную базу разворачивал =D
Длилось сие действие секунд 15 а потом ошибка.
Ты у себя то проверял ?
Не надо столько действий, я уже писал - используй транзакции.
Но бэкап - это обязательно. Глупо подвергать чужие данные риску. да и во-вторых ты даешь пользователю шанс откатить изменения. МОжет ему не подойдет совсем наш метод.
Еще правильнее - почитать про то, как вообще база это делает. Может она сама делает эту операцию через транзакцию.
Лентяй!
Автор хочет, чтобы софтина работала. а потом уж о дизайне думать. Естественно у себя проверял - все на ура в любой тип переходит за 8 секунд.
---
Почапал читать.
Уговорил:
---
Пока я докурочиваю софтину, подскажи - какого дьявола текст в TextBox'е автоматически выделяется при создании формы? Я так понял, это из-за того, что выставлено свойство Read Only...
ХЗ. Не сталкивался.
Тэкс, появилась еще одна проблема. На этот раз с бэкапом, а вернее с его восстановлением.
На таблице висит FOREIGN KEY. И вопрос в связи с этим лишь один: что делать? Во-первых, нужно ли что-нибудь делать при копировании таблицы? Я это делаю так:
---
Тэкс, с паролем разобрался, но не тестировал. Причины две и каждая рождает вопрос, оба из которых я уже задавал:
1) Как создать запороленную учетку для стандартного биоваревского сервера (чтобы проверить парольный доступ).
2) Как изменить стандартную строку подключения? Дело в том, что ConfigureToolset.exe исправно гененирует ее и даже дает нажать кнопку "Готово", однако никаких изменений в реестр не вносит и, если повторно его запустить, там снова будет стоять галочка стандартного подключения. Возможно, проблема в х64-винде. Возможно, в чем-то еще?
Идеи? Отсутствие ответа на 2ой вопрос исключает необходимость в 1ом.
Ну и третий вопрос, который я уже также задавал: что делать с FOREIGN KEY (см.пост выше). Как только исправлю (или не исправлю) последний и протестирую (или не протестирую) первые - залью новую версию.
Сори, я пас. У меня просто нет времени, чтобы ещё и в этом ковыряться.
Но на:
Вопрос 1 банально можно найти ответы в гугле.
Вопрос 2 когда-то я тоже мудохался с этим, но после всех патчей это как то само начало работать (возможно причина и не в этом), как - я так и не понял, но изменения начали запоминаться. В любом случае строку подключения моно вписать руками.
Вопрос 3, наверное тебе откроет более углубленное изучение MS SQL или попробуй очень точно сформулировать и описать его на к.л. тематическом форуме.
Ну, увы, тоже работа, так что с углубленным изучением SQL придется обождать.
Тогда - ждите. Как разберусь - выложу. Думаю, к выходным. Но тут без гарантий.
По п.2 - бессмысленно, мне интересно - где он создаст ее сам в 64-разрядной системе. Что-то мне сомнительно, что там, куда я его сейчас направил. Но не суть - поэкспериментирую. Главное - если у тебя работает, значит и я настрою.
---
Видимо, придется обойтись только транзакцией, ибо для бэкапа нужно сделать копию данной таблицы и всех связанных таблиц. А при восстановлении - уничтожить все связанные таблицы, восстановить из бэкапа, заново создать связи. ИМХО, после такого даже в удачном случае юзеры повесятся. Но как бы не пришлось делать бэкап от бэкапа. Второй способом - BACKUP / RESTORE но он настолько громоздкий и медленный и, опять же, затрагивает в той или иной мере большую часть базы, что использовать его совершенно не хочется. В общем, работа идет через транзакцию, что обеспечит отказоустойчивость. А если человек жмяхает кнопку, значит он понимает для чего это делает и готов к последствиям. Добавлю кнопку обратного изменения типов (скорее всего даже сделаю просто выпадающий список с возможными вариантами.
Версия 1.5. Тестируйте.
пишу в том порядке в каком увидел:
- Для среднестатистического конечного пользователя стал слишком сложный интерфейс. Если очень хочется предоставить расширенные настройки по конвертированию, лучше их "спрятать" в адвансед опшнс, но не дать простым пользователям шанса их "случайно" заюзать.
- Все известные эксепшны (например, если БД недоступна) не содержащие какой-либо полезной информации для разработчика (например строку подключения) в финале можно заменить в итоге на юзер-френдли сообщения. Такие большие простынки, как правило пугают их.
- Я тыкаю на кнопки и... ничего не вижу =) только кроме того, что открывается следующая кнопка. Это немного противоестественно, ИМХО.
- Я, простой американский бой. Вбиваю от балды пароль в поле пароля и на этапе "проверка соединения" получаю ошибку, причем не обрабатываемую приложением, а в стандартном виндовском окне (текст ошибки ниже). Логично, ведь моя база без пароля, а с Integrated Sequrity.
- После того, как база пропатчилась я решил не экспериментировать и не нажимать "Исправление базы" снова. Предоставляю это сделать тебе =D. Но намек ты понял, думаю
- Если тебе захотят написать письмо или скопировать линк форума при ошибке - заипутся, ибо не не выделяемые строки. Если ты используешь свою форму - поставь на все ссылки LinkLabel а в обработчик - что-то типа "System.Diagnostics.Process.Start("http://www.yandex.ru");
"
База норм пропатчилась.
Слава богу, наконец то.
Лог ошибки по проверке соединения:
Подробная информация об использовании оперативной
(JIT) отладки вместо данного диалогового
окна содержится в конце этого сообщения.
************** Текст исключения **************
System.ArgumentException: Формат строки инициализации не соответствует спецификации, начиная с индекса 190.
в System.Data.Common.DbConnectionOptions.GetKeyValue
Pair(String connectionString, Int32 currentPosition, StringBuilder buffer, Boolean useOdbcRules, String& keyname, String& keyvalue)
в System.Data.Common.DbConnectionOptions.ParseIntern
al(Hashtable parsetable, String connectionString, Boolean buildChain, Hashtable synonyms, Boolean firstKey)
в System.Data.Common.DbConnectionOptions..ctor(Strin
g connectionString, Hashtable synonyms, Boolean useOdbcRules)
в System.Data.OleDb.OleDbConnectionString..ctor(Stri
ng connectionString, Boolean validate)
в System.Data.OleDb.OleDbConnectionFactory.CreateCon
nectionOptions(String connectionString, DbConnectionOptions previous)
в System.Data.ProviderBase.DbConnectionFactory.GetCo
nnectionPoolGroup(String connectionString, DbConnectionPoolGroupOptions poolOptions, DbConnectionOptions& userConnectionOptions)
в System.Data.OleDb.OleDbConnection.ConnectionString
_Set(String value)
в System.Data.OleDb.OleDbConnection.set_ConnectionSt
ring(String value)
в DATUnicode.FormMain.button2_Click(Object sender, EventArgs e)
в System.Windows.Forms.Control.OnClick(EventArgs e)
в System.Windows.Forms.Button.OnClick(EventArgs e)
в System.Windows.Forms.Button.OnMouseUp(MouseEventAr
gs mevent)
в System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
в System.Windows.Forms.Control.WndProc(Message& m)
в System.Windows.Forms.ButtonBase.WndProc(Message& m)
в System.Windows.Forms.Button.WndProc(Message& m)
в System.Windows.Forms.Control.ControlNativeWindow.O
nMessage(Message& m)
в System.Windows.Forms.Control.ControlNativeWindow.W
ndProc(Message& m)
в System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
Так что, можно пробовать?
kelamor
Рискни.
Leon PRO
Как использовать эти самые LinkLabel внутри текста текст бокса?
Так у тебя же URL и е-мейлы не в текст боксе, когда ошибка выскакивает, а над ним, на форме.
2 kelamor
Почему бы и нет, только бэкап базы сделай =)
В общем попробовал
Сделал Builder-to-Builder своего проекта и попытался пропатчить базу.
Последнее сообщение было: "Сохраняю изменения в таблицах". Сообщения о том, что работа завершена, не было (а должно было быть?).
Однако как не работал тулсет с русскими, так и не работает.
Потом тулсет снёс вместе с базой. Заново установил - тот же результат. Патч говорит, что всё сделал, но тулсет русский язык не понимает.
Стоит Win7 Pro. Патч запускал в режиме совместимости от имени администратора (если запускать не от имени администратора - прога не находит базу).
Ещё глюк вылез... раньше не обращал на него внимания - не все русские буквы печатаются в тулсете, половина буковок не хочет. Может и раньше такое было, но раньше не пробовал русским писать, вот и не замечал. Хотя база здесь конечно не при чем
Да, забыл, пробовал конвертить и в ntext и в char.
Судя по всему есть некоторый глюк который касается не патча, а самой БД - модификация работает только с "новыми" объектами. Объекты созданные в старой БД, почему-то продолжают забивать "????????", так что если ты пытался перевести на русский то что уже было создано на английском, - то это бесполезно. Единственный способ в данном случае, в ручную создавать тлк-шку, впрочем вместе с "подчисткой" ITP -шек это универсальный способ, действенный на 100% - однако не самый удобный.
Понято. В старых файлах и пробовал. В принципе в этом проекте мне русский нужен для комментов, ну а в следующих уже будем использовать
Извиняюсь за немного нубский вопрос, но как пользоваться программой? Перечитав все имеющиеся темы, в которых мог бы быть дан ответ на этот вопрос, не нашел ничего полезного для себя. Если не сложно, может кто-нибудь описать процесс изменения базы данных DAToolset? Ато не хочеться тыкая наугад её повредить...
Только вчера решил заняться освоением данного тулсэта, так что я ещё новичок, но бросать освоение этого тулсэта не собираюсь, и надеюсь когда-нибудь смогу поделиться парочкой интересных кампаний (идеи уже есть, осталось их только реализовать).
Прости, а что ты там можешь тыкнуть на угад?
Читаешь ридмишку.
Ставишь галочку, что ты прочел все вышеизложенное и готов к последствиям.
Тыкаешь кнопки по порядку - 1, 2, 3. Если на этапах 1 или 2 все рухнуло - бежишь сюда. Если нет - смело жмешь 3ю кнопку. Все.
Если подключение к базе требует пароля - пишешь пароль. Если не знаешь требует ли - значит не требует.
Смотришь, как пробегает до конца полоска. Видишь, что программка отработала. Закрываешь, забываешь. Если обвалилась - бежишь сюда.
С софтиной все. Дальнейшие извращения описаны в этой теме:
http://www.city-of-masters.ru/forums/index.php?showtopic=6206&st=50
Ice Blade и Leon PRO тебе в помощь.
У меня программы не может открыть базу данных. На втором этапе выскакивает вот такая ошибка:
На счёт проги не знаю но на, крайний случай можно вручную модифицировать БД см. http://www.city-of-masters.ru/forums/index.php?showtopic=6206&st=50#
Однако если почитаешь тему дальше, то выяснишь что не все так просто и одной модификации маловато, нужно ещё чистить gff-ки после экспорта(*.itp, *.utp и т.д), да и не стоит забывать что работать будет только с новыми str-ингами.
Если я правильно понял, то созданием диалогов вы занимались не в самом тулсете, а через какие-то другие программы, предназначенные для этого, которые создают диалоговые файлы в расширениях типа gff . А, следовательно, чистить gff-ки нужно после экспорта их в сам мод.
Как и вы, я столкнулся с проблемой, которыя заключалась в том, что после прописки текста диалога он превращался в "?????". И хоть в игре текст воспринимался нормально, это затрудняло бы дальнейшее редактирование диалогов и ориентацию в них. Также из-за квадратиков над головой приходится давать имена объектам на английском. Как я понял, модификация базы решит эти проблемы. Но я прописывал диалоги в самом тулсете и они у меня хранятся в формате dlg, в папке проекта, причем каждый диалог в отдельном файле. Нужно ли мне всетаки заниматься чисткой gff-ок (вдруг я мое представление о том что это такое=false)? Если да, то можешь про это поподробнее написать?
Я пока что не имею достаточного опыта по созданию модов в каком-либо тулсете, пока я имею лишь замечательные идеи, желание их реализовать, ну и относительно небольшие знания в области программирования (которые с каждым днем потихоньку растут, не зря ж я в ВУЗ хожу... ). Поэтому, буду благодарен за любые полезные советы в области модостроения...
По поводу стрингов. Даже после модификации будет вылезать косяк. Когда ты создаёшь новую строку она сохраняется, экспортируется, чекинится и чекаутится на ура. Однако стоит отредактировать её - и пипец, опять вопросики появляются.
Я вручную в базе поменял у всех полей и в процедурах тип "text" на "ntext" и все (почти) поля в тулсете стали понимать русский язык, кроме тех, которые сохраняются в стрингах.
А процедуру, которая отвечает за редактирование строки - я не нашёл, возможно это происходит где-то в самом тулсе?
Скачал. Запустил, проклил по 1,2,3. Линия прогресса дошла до конца, в логе писало "Сохраняю таблицы". Открыл Тулсет, создал новый модель и тестовой диалог с 1 строчкой, написанной по-русски. Экпортировал, зашел в игру - отображается. Закрыл тулсет, открыл тулсет, забило знаками вопроса... ребят, что не так делаю? Уж совсем руки из одного места...
Silderon, мой предыдущий пост.
Реплики диалогов хранятся в str-ингах и на них изменение типов полей в базе (я во всяком случае такое поле не нашёл).
Во время использование Вашей программы под названием DaTUnicode получил такую ошибку:
System.Data.OleDb.OleDbException: Cannot alter column 'Text' to be data type text.
в System.Data.OleDb.OleDbCommand.ExecuteReaderIntern
al(CommandBehavior behavior, String method)
в System.Data.OleDb.OleDbCommand.ExecuteNonQuery()
в DATUnicode.FormMain.button6_Click(Object sender, EventArgs e)
буду благодарен, если вы подскажете, как ее решить.
Prince, ответ дан в первой строке ошибки - тебе не дают подключиться к БД. Неверные логин\пароль. Логин там, вроде, постоянный. Значит неверный пароль (или глючит сервер).
Silderon, если это ты писал мне на мыло, то проблема решена. Если нет - нефиг выбирать в списках то, чего не знаешь, пытаясь превратить ntext в text (или maxvalue в text - не помню ).
Набил https://daforge.wordpress.com/2011/11/26/%d1%83%d1%80%d0%be%d0%ba%d0%b8-%d1%80%d1%83%d1%81%d1%81%d0%ba%d0%be%d0%b3%d0%be-%d1%8f%d0%b7%d1%8b%d0%ba%d0%b0/по обучению тулсета русскому языку. С месяц уже наверное работаю в русскоязычном, точнее - русскоговорящем, тулсете.
Базу правил вручную, с помощью Microsoft SQL Server Management Studio Express. Может EqKeeper сделает патчик?
Осталась проблема с именами, описаниями и всплывающими подсказками некоторых ресурсов в самой игре. Пока решаю путём удаления LocalString'ов.
Русская версия Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)