![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
![]() |
![]()
Сообщение
#26
|
|
Level 4 ![]() ![]() Класс: Маг Характер: True Neutral Раса: Человек ![]() |
Сделал. Пост автора программы первый, поэтому он может поменять название темы на нужное. Увы, не могу. (IMG:style_emoticons/kolobok_light/smile.gif) Griffon: DAO Toolset Unicode Patch. захотите сменить, исправим. (IMG:style_emoticons/kolobok_light/smile.gif) Кипер, актуальные версии, полагаю, лучше помещать в первый пост и обновлять его. Хорошо бы вести там чендж лог от версии к версии. Сделано. Не приложил исходники - подозрительно. А вдруг там вирусня закодирована? Я бы даже не притронулся к экзешке на вашем месте. До релиза исходники не дам. (IMG:style_emoticons/kolobok_light/nea.gif) После релиза - если хватит времени, чтобы привести код в божеский вид. Мне стыдно. (IMG:style_emoticons/kolobok_light/unsure.gif) Leon PRO Сейчас прикручу к софтине нормлаьный лог - посмотрим хоть на чем падает (вернее, что она пытается подсунуть в ConnectionString). (IMG:style_emoticons/kolobok_light/smile.gif) P.S. Да, кнопку поправил, а чтобы запаковать ресурсы в exe'шник, я так понял, нужен .NET не ниже 3.5. Leon (и все желающие поучаствовать в тестировании): http://www.mediafire.com/?4uxzefncncqqcg7 Версия с логом. Что пишет после определения строки подключения? (Чувствую, придется все-таки вернуться к первому варианту и использовать только путь к базе, а не всю строчку... но поживем увидим (IMG:style_emoticons/kolobok_light/smile.gif) ) |
![]()
Сообщение
#27
|
|
Ушедший на войну ![]() Класс: Маг Характер: 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) --------------------------- ОК --------------------------- И оставь в покое уже мою ветку LOCAL_MASHINE (IMG:style_emoticons/kolobok_light/crazy.gif) , бери значение из CURRENT_USER и не DefaultDatabaseConnection а DatabaseConnection. |
![]()
Сообщение
#28
|
|
Level 4 ![]() ![]() Класс: Маг Характер: True Neutral Раса: Человек ![]() |
Вот злодей!
Проблема в том, что у меня она как раз в локал машин, а куррент юзере ее нет. =\ (Ибо я умный (и скромный) и когда писал просмотрел весь реестр - других записей не обнаружилось) И есть только дефолт... проверять все, в порядке приоритетов? Сообщение отредактировал EqKeeper - Nov 17 2010, 23:02 |
![]()
Сообщение
#29
|
|
Ушедший на войну ![]() Класс: Маг Характер: Chaotic Good Раса: Человек NWN: Контент ![]() |
Я бы проверял все в порядке нормальных шансов.
У большинства юзеров, думаю, в CURRENT_USER. Но, я сам модифицировал connection string через тулсет-конфигуратор. Выглядит он у меня вот так: Код Provider=SQLNCLI10.1;Integrated Security=SSPI;Persist Security Info=False;User ID="";Initial Catalog=WorkDB2;Data Source=.\SQLEXPRESS;Auto Translate=False;Initial File Name="";Server SPN="" Может если не модифицировать, то записи в Каррент Юзер нет? Вобщем, тебе надо перепробовать и учесть все варианты. В идеале, программа должна последовательно перебирать все известные варианты от частного (Юзер-кастом настройки) и до общего (дефолтной настройки), пока не произойдет соединение. Как контрольнй выстрел - если ничего не подошло - сделать поиск по реестру и автоматическая отсылка найденных веток с вхождениями"Bioware" и "DragonAge" со всем их содержимым с разрешения пользователя, например через POST запрос на к.л. хостинг который будет их принимать. (ггг... вот так, с виду маленькие пятиминутные программы превращаются в месячную нервотрепку для их разработчиков (IMG:style_emoticons/kolobok_light/crazy.gif) ) UPD. Заодно можно искать и отсылать все картинки из скрытых папок с вхожденяими "mygirl" "private" "homeporn" в именах (IMG:style_emoticons/kolobok_light/rolleyes.gif) (IMG:style_emoticons/kolobok_light/biggrin.gif) |
![]()
Сообщение
#30
|
|
Level 4 ![]() ![]() Класс: Маг Характер: True Neutral Раса: Человек ![]() |
Цитата UPD. Заодно можно искать и отсылать все картинки из скрытых папок с вхожденяими "mygirl" "private" "homeporn" в именах rolleyes.gif biggrin.gif Принято! Касательно остального - поковыряюсь. К выводу пришел лишь к одному - конекшен стринг юзать нельзя. Ибо у тебя вот он пользует SQL. По дефолту - OleDb. А в C# все-таки нужна конкретика. Придется, видимо. парсить строчку и извлекать из нее имя базы, логин/пароль... возможно, еще что-нибудь... Боги, храните регэкспы! (IMG:style_emoticons/kolobok_light/smile.gif) В общем, весело. (IMG:style_emoticons/kolobok_light/smile.gif) Сделаю. (IMG:style_emoticons/kolobok_light/smile.gif) |
![]()
Сообщение
#31
|
|
Ушедший на войну ![]() Класс: Маг Характер: Chaotic Good Раса: Человек NWN: Контент ![]() |
Ну как это нельзя ???? Только для этого надо использовать OleDB провайдера (скорее всего они его и юзают)
В примере ниже я использовал полный копипаст своей строки, только заэкранировал кавычки: Код using System.Data.OleDb; string connString = "Provider=SQLNCLI10.1;Integrated Security=SSPI;Persist Security Info=False;User ID=\"\";Initial Catalog=WorkDB2;Data Source=.\\SQLEXPRESS;Auto Translate=False;Initial File Name=\"\";Server SPN=\"\""; OleDbConnection oleC = new OleDbConnection(connString); oleC.Open(); ву а ля, коннекшн открыт =) Если же ты хочешь использовать SqlClient провайдера, то все чуть сложнее, но тоже без всяких заморочек на регэкспы. Вот я набросал за 35 минут минимально необходимый быдлокод, учитывающий встроенную аутентификацию и аутентификацию по логину-паролю. Код using System.Collections.Generic; using System.Data.SqlClient; namespace DBConnector { class Program { const string connString = "Provider=SQLNCLI10.1;Integrated Security=SSPI;Persist Security Info=False;User ID=\"\";Initial Catalog=WorkDB2;Data Source=.\\SQLEXPRESS;Auto Translate=False;Initial File Name=\"\";Server SPN=\"\""; const string IntegratedSequrity = "Integrated Security"; const string UserId = "User ID"; const string Passwd = "Password"; const string InitCatalog = "Initial Catalog"; const string DataSource = "Data Source"; static void Main(string[] args) { string[] stringArr = connString.Split(';'); Dictionary<string, string> connPairs = new Dictionary<string, string>(); foreach (string str in stringArr) { string[] tmpStr = str.Split('='); connPairs.Add(tmpStr[0], tmpStr[1]); } SqlConnectionStringBuilder sqlConnBuilder = new SqlConnectionStringBuilder(); if (connPairs[IntegratedSequrity] == "SSPI" || connPairs[IntegratedSequrity].ToLower() == "true") sqlConnBuilder.IntegratedSecurity = true; else sqlConnBuilder.IntegratedSecurity = false; if (sqlConnBuilder.IntegratedSecurity == false) { sqlConnBuilder.UserID = connPairs[UserId]; sqlConnBuilder.Password = connPairs[Passwd]; } sqlConnBuilder.InitialCatalog = connPairs[InitCatalog]; sqlConnBuilder.DataSource = connPairs[DataSource]; SqlConnection conn = new SqlConnection(sqlConnBuilder.ConnectionString); conn.Open(); } } } UPD. 1 Судя по тексту ошибки ты и так используешь OleDB. (Судя по коду - действительно используешь) Все должно открываться (IMG:style_emoticons/kolobok_light/crazy.gif) . |
![]()
Сообщение
#32
|
|
Level 4 ![]() ![]() Класс: Маг Характер: True Neutral Раса: Человек ![]() |
Какое изысканное извращение. (IMG:style_emoticons/kolobok_light/smile.gif) )) Блин, а я так не умею. (IMG:style_emoticons/kolobok_light/unsure.gif) Спасибо за код. (IMG:style_emoticons/kolobok_light/smile.gif) Регулярки мне нравятся больше, но в познователньых целях - очень даже! (IMG:style_emoticons/kolobok_light/smile.gif)
Не обращай внимания, я просто почему-то решил, что SQLNCLI10.1 используется для SqlConnection и OleDb его не понимает. С базами работаю 2ой раз в жизни, так что какие провайдеры с какими классами работают не знаю. Обычно вбиваю в msdn и беру один из примеров. (IMG:style_emoticons/kolobok_light/smile.gif) Тогда проблем нет! (IMG:style_emoticons/kolobok_light/smile.gif) Просто переберу все ключики реестра. --- Вау! Почитал про Dictonary - влюбился! (IMG:style_emoticons/kolobok_light/smile.gif) ) Мои любимые универсальные хэши из Руби возвращаются! (IMG:style_emoticons/kolobok_light/smile.gif) А я мучался с Хэштабл. (IMG:style_emoticons/kolobok_light/smile.gif) )) --- Хмм... а где в тулсете настраивается подключение? Я что-то в Опциях не нашел, а других настроек не увидел... >_> --- Кстати, а мелкомягкие злодеи напрочь убили возможность получить доступ к корню реестра? Тоесть, пользуясь их классом Registry плясать можно только от конкретного раздела, но не от корня? --- Готово! Тестируйте. (IMG:style_emoticons/kolobok_light/smile.gif) Сообщение отредактировал EqKeeper - Nov 18 2010, 14:35 |
![]()
Сообщение
#33
|
|
Ушедший на войну ![]() Класс: Маг Характер: Chaotic Good Раса: Человек NWN: Контент ![]() |
В папке с тулсетом есть экзешник конфигуратора.
И там же, обрати внимание есть галка "use default configuration" - возможно именно она и определяет что тулсетина начинает ломиться в Локал Мэшин -> дефолт Коннекшн. Цитата Готово! Тестируйте. smile.gif А ты протестировал вход в БД по логину-паролю через строку подключения ? (IMG:style_emoticons/kolobok_light/wink3.gif) |
![]()
Сообщение
#34
|
|
Level 4 ![]() ![]() Класс: Маг Характер: True Neutral Раса: Человек ![]() |
Я строку подключения и беру. (IMG:style_emoticons/kolobok_light/smile.gif) Целиком. Ибо как ты сам и говорил - юзаю OleDb, следовательно вручную смысла не имеет. Так что, если работает тулсет, должен работать и патч. Не работает тулсет - идут лесом с ошибкой. Или ты имеешь ввиду сделать отдельный ругателньый экзепшен на случай, если строчку получили, а приконектиться не смогли?
Насчет экзешника - пасиб. Сейчас и проверю. (IMG:style_emoticons/kolobok_light/smile.gif) |
![]()
Сообщение
#35
|
|
Ушедший на войну ![]() Класс: Маг Характер: Chaotic Good Раса: Человек NWN: Контент ![]() |
Цитата Я строку подключения и беру. smile.gif Целиком. А ты уверен, что пасс в ней пишется? Может тулсетина каждый раз при таком типе аутентификации запрашивает его? Это не респектабельный подход. Разработчик (хороший разработчик) в первую очередь должен сам всё тестировать. А "баги" это случайно неучтенные моменты, но не непроверенные способы работы программы. Ну и по делу (IMG:style_emoticons/kolobok_light/biggrin.gif) --------------------------- Dragon Age Toolset Database Patch - Error! --------------------------- Во время работы произошла ошибка! Если вы не знаете почему это произошло или уверены, что вашей вины в этом нет, пожалуйста свяжитесь со мной! email: equilibriumkeeper@yandex.ru jabber: equilibriumkeeper@jabber.ru forum: http://www.city-of-masters.ru/forums/index...c=6214&st=0 В сообщении укажите нижеследующую информацию (вы можете скопировать ее нажав Ctrl+C): System.ArgumentException: Недопустимое значение ключа "integrated security". в System.Data.Common.DbConnectionOptions.ConvertValu eToIntegratedSecurityInternal(String stringValue) в System.Data.Common.DbConnectionOptions.ConvertValu eToIntegratedSecurity() в System.Data.Common.DbConnectionOptions.get_HasBlan kPassword() в System.Data.Common.DBDataPermission..ctor(DbConnec tionOptions connectionOptions) в System.Data.OleDb.OleDbPermission..ctor(OleDbConne ctionString constr) в System.Data.OleDb.OleDbConnectionString.CreatePerm issionSet() в System.Data.Common.DbConnectionOptions.DemandPermi ssion() в System.Data.OleDb.OleDbConnection.PermissionDemand () в System.Data.OleDb.OleDbConnectionFactory.Permissio nDemand(DbConnection outerConnection) в System.Data.ProviderBase.DbConnectionClosed.OpenCo nnection(DbConnection outerConnection, DbConnectionFactory connectionFactory) в System.Data.OleDb.OleDbConnection.Open() в DATDbPatch.FormMain.button1_Click(Object sender, EventArgs e) --------------------------- ОК --------------------------- В итоге я сказал тулсету, чтобы снова соединялся по SSPI. В результате - алилуйя! Прога соединилась. Однако вот это расстраивает меня больше чем все остальное вместе взятое. И теперь хочу спросить. У меня в БД теперь каша или все ок? --------------------------- Dragon Age Toolset Database Patch - Error! --------------------------- Во время работы произошла ошибка! Если вы не знаете почему это произошло или уверены, что вашей вины в этом нет, пожалуйста свяжитесь со мной! email: equilibriumkeeper@yandex.ru jabber: equilibriumkeeper@jabber.ru forum: http://www.city-of-masters.ru/forums/index...c=6214&st=0 В сообщении укажите нижеследующую информацию (вы можете скопировать ее нажав Ctrl+C): System.Data.OleDb.OleDbException: Query timeout expired в System.Data.OleDb.OleDbCommand.ExecuteReaderIntern al(CommandBehavior behavior, String method) в System.Data.OleDb.OleDbCommand.ExecuteNonQuery() в DATDbPatch.FormMain.button1_Click(Object sender, EventArgs e) --------------------------- ОК --------------------------- UPD Прикрути лучше на время разработки лог нормальный, чтобы компактно текст писался. Банальным Exception.ToString() выводи. |
![]()
Сообщение
#36
|
|
Level 4 ![]() ![]() Класс: Маг Характер: True Neutral Раса: Человек ![]() |
Блин, Леон, ты хоть под теги это безобразие прячь и лишнее убивай. (IMG:style_emoticons/kolobok_light/smile.gif) А то я уж сам запутался - что у тебя получилось, а что нет.
Каши там нет. Если она обвалилась, то просто обвалилась не внеся никаких изменений (во всяком случае, теоретически). --- Это и есть тот самый Exeption.ToString() (IMG:style_emoticons/kolobok_light/wink3.gif) --- Провис он на таймауте... весело... Сейчас увеличу дефолтный. Заодно родилась еще одна страшная мысля - а что если сервер упадет во время работы... Нда... Все-таки надо бэкапить оригинальную таблицу. Причем дважды. И во второй раз изменять уже ее, а после ставить на место оригинальной... Сообщение отредактировал EqKeeper - Nov 18 2010, 20:47 |
![]()
Сообщение
#37
|
|
Ушедший на войну ![]() Класс: Маг Характер: Chaotic Good Раса: Человек NWN: Контент ![]() |
Короче, по SSPI соединяется, по Login password - нет.
даже если и соединяется - базу не патчит, рушится в середине работы. И нет гарантии что не превращает данные в таблице в кашу. Вообще, судя по тому как у меня заработал винчестер во время трансформации - такое ощущение, что он там как минимум многомегабайтную базу разворачивал =D Длилось сие действие секунд 15 а потом ошибка. Ты у себя то проверял ? Не надо столько действий, я уже писал - используй транзакции. Но бэкап - это обязательно. Глупо подвергать чужие данные риску. да и во-вторых ты даешь пользователю шанс откатить изменения. МОжет ему не подойдет совсем наш метод. Еще правильнее - почитать про то, как вообще база это делает. Может она сама делает эту операцию через транзакцию. Цитата Блин, Леон, ты хоть под теги это безобразие прячь и лишнее убивай. Я думал об этом еще когда первый раз увидел, но, потом прикинул, что раз автор не хочет сделать нормальный вывод для копипаста, то мне париться и чистить логи тем более лень (IMG:style_emoticons/kolobok_light/unsure.gif) |
![]()
Сообщение
#38
|
|
Level 4 ![]() ![]() Класс: Маг Характер: True Neutral Раса: Человек ![]() |
Лентяй! (IMG:style_emoticons/kolobok_light/smile.gif)
Автор хочет, чтобы софтина работала. а потом уж о дизайне думать. (IMG:style_emoticons/kolobok_light/smile.gif) Естественно у себя проверял - все на ура в любой тип переходит за 8 секунд. --- Почапал читать. Сообщение отредактировал EqKeeper - Nov 18 2010, 21:08 |
![]()
Сообщение
#39
|
|
Ушедший на войну ![]() Класс: Маг Характер: Chaotic Good Раса: Человек NWN: Контент ![]() |
Цитата а потом уж о дизайне думать (IMG:style_emoticons/kolobok_light/biggrin.gif) Ну так сделай толковый вывод! |
![]()
Сообщение
#40
|
|
Level 4 ![]() ![]() Класс: Маг Характер: True Neutral Раса: Человек ![]() |
Уговорил:
(IMG:http://ipicture.ru/uploads/20101118/k70d3R5V.png) --- Пока я докурочиваю софтину, подскажи - какого дьявола текст в TextBox'е автоматически выделяется при создании формы? Я так понял, это из-за того, что выставлено свойство Read Only... Сообщение отредактировал EqKeeper - Nov 18 2010, 22:52 |
![]()
Сообщение
#41
|
|
Ушедший на войну ![]() Класс: Маг Характер: Chaotic Good Раса: Человек NWN: Контент ![]() |
ХЗ. Не сталкивался.
|
![]()
Сообщение
#42
|
|
Level 4 ![]() ![]() Класс: Маг Характер: True Neutral Раса: Человек ![]() |
Тэкс, появилась еще одна проблема. На этот раз с бэкапом, а вернее с его восстановлением.
На таблице висит FOREIGN KEY. И вопрос в связи с этим лишь один: что делать? Во-первых, нужно ли что-нибудь делать при копировании таблицы? Я это делаю так: Код SELECT * INTO dbo.t_StringText_backup FROM dbo.t_StringText Годится? Ну, и теперь собственно возврат бэкапа. Хотел я вначале дропнуть оригинальную таблицу, и точно также создать на ее месте новую... однако не получилось, выдал исключение с FOREIGN KEY. Как уже писал, SQL для меня - темный лес. Так что нужен совет, как быть в подобной ситуации. --- А я пока транзакцию прикручу. --- Прикрутил... о, нарисую ка я еще и метод-расширение на будущее, чтобы все делать транзакциями. (IMG:style_emoticons/kolobok_light/smile.gif) --- Изыскания продолжу уже завтра. Пока могу предположить, что твое предположение (пардон за тавтологию) насчет пароля было верно. Думается мне, что если юзер поставит галочку "сохранять пароль", то можно будет использовать и эту строчку. Если нет - придется задать дополнительный вопрос о пароле. Завтра проверю. Если не сложно - подскажите как добавить в базу пользователя с паролем (а то у меня безпарольная. (IMG:style_emoticons/kolobok_light/smile.gif) ) --- Вчера руки так и не дошли - сейчас наконец сел дописать. Скоро (надеюсь) выложу. (IMG:style_emoticons/kolobok_light/smile.gif) Сообщение отредактировал EqKeeper - Nov 21 2010, 14:56 |
![]()
Сообщение
#43
|
|
Level 4 ![]() ![]() Класс: Маг Характер: True Neutral Раса: Человек ![]() |
---
Тэкс, с паролем разобрался, но не тестировал. Причины две и каждая рождает вопрос, оба из которых я уже задавал: 1) Как создать запороленную учетку для стандартного биоваревского сервера (чтобы проверить парольный доступ). 2) Как изменить стандартную строку подключения? Дело в том, что ConfigureToolset.exe исправно гененирует ее и даже дает нажать кнопку "Готово", однако никаких изменений в реестр не вносит и, если повторно его запустить, там снова будет стоять галочка стандартного подключения. Возможно, проблема в х64-винде. Возможно, в чем-то еще? Идеи? Отсутствие ответа на 2ой вопрос исключает необходимость в 1ом. (IMG:style_emoticons/kolobok_light/smile.gif) Ну и третий вопрос, который я уже также задавал: что делать с FOREIGN KEY (см.пост выше). Как только исправлю (или не исправлю) последний и протестирую (или не протестирую) первые - залью новую версию. (IMG:style_emoticons/kolobok_light/smile.gif) |
![]()
Сообщение
#44
|
|
Ушедший на войну ![]() Класс: Маг Характер: Chaotic Good Раса: Человек NWN: Контент ![]() |
Сори, я пас. У меня просто нет времени, чтобы ещё и в этом ковыряться.
Но на: Вопрос 1 банально можно найти ответы в гугле. Вопрос 2 когда-то я тоже мудохался с этим, но после всех патчей это как то само начало работать (возможно причина и не в этом), как - я так и не понял, но изменения начали запоминаться. В любом случае строку подключения моно вписать руками. Вопрос 3, наверное тебе откроет более углубленное изучение MS SQL или попробуй очень точно сформулировать и описать его на к.л. тематическом форуме. |
![]()
Сообщение
#45
|
|
Level 4 ![]() ![]() Класс: Маг Характер: True Neutral Раса: Человек ![]() |
Ну, увы, тоже работа, так что с углубленным изучением SQL придется обождать. (IMG:style_emoticons/kolobok_light/rolleyes.gif)
Тогда - ждите. Как разберусь - выложу. Думаю, к выходным. Но тут без гарантий. По п.2 - бессмысленно, мне интересно - где он создаст ее сам в 64-разрядной системе. Что-то мне сомнительно, что там, куда я его сейчас направил. Но не суть - поэкспериментирую. Главное - если у тебя работает, значит и я настрою. (IMG:style_emoticons/kolobok_light/smile.gif) --- Видимо, придется обойтись только транзакцией, ибо для бэкапа нужно сделать копию данной таблицы и всех связанных таблиц. А при восстановлении - уничтожить все связанные таблицы, восстановить из бэкапа, заново создать связи. ИМХО, после такого даже в удачном случае юзеры повесятся. Но как бы не пришлось делать бэкап от бэкапа. (IMG:style_emoticons/kolobok_light/smile.gif) Второй способом - BACKUP / RESTORE но он настолько громоздкий и медленный и, опять же, затрагивает в той или иной мере большую часть базы, что использовать его совершенно не хочется. В общем, работа идет через транзакцию, что обеспечит отказоустойчивость. А если человек жмяхает кнопку, значит он понимает для чего это делает и готов к последствиям. Добавлю кнопку обратного изменения типов (скорее всего даже сделаю просто выпадающий список с возможными вариантами. Сообщение отредактировал EqKeeper - Nov 23 2010, 04:32 |
![]()
Сообщение
#46
|
|
Level 4 ![]() ![]() Класс: Маг Характер: True Neutral Раса: Человек ![]() |
Версия 1.5. Тестируйте. (IMG:style_emoticons/kolobok_light/rolleyes.gif)
|
![]()
Сообщение
#47
|
|
Ушедший на войну ![]() Класс: Маг Характер: Chaotic Good Раса: Человек NWN: Контент ![]() |
пишу в том порядке в каком увидел:
- Для среднестатистического конечного пользователя стал слишком сложный интерфейс. Если очень хочется предоставить расширенные настройки по конвертированию, лучше их "спрятать" в адвансед опшнс, но не дать простым пользователям шанса их "случайно" заюзать. - Все известные эксепшны (например, если БД недоступна) не содержащие какой-либо полезной информации для разработчика (например строку подключения) в финале можно заменить в итоге на юзер-френдли сообщения. Такие большие простынки, как правило пугают их. - Я тыкаю на кнопки и... ничего не вижу =) только кроме того, что открывается следующая кнопка. Это немного противоестественно, ИМХО. - Я, простой американский бой. Вбиваю от балды пароль в поле пароля и на этапе "проверка соединения" получаю ошибку, причем не обрабатываемую приложением, а в стандартном виндовском окне (текст ошибки ниже). Логично, ведь моя база без пароля, а с Integrated Sequrity. - После того, как база пропатчилась я решил не экспериментировать и не нажимать "Исправление базы" снова. Предоставляю это сделать тебе =D. Но намек ты понял, думаю (IMG:style_emoticons/kolobok_light/crazy.gif) - Если тебе захотят написать письмо или скопировать линк форума при ошибке - заипутся, ибо не не выделяемые строки. Если ты используешь свою форму - поставь на все ссылки LinkLabel а в обработчик - что-то типа "System.Diagnostics.Process.Start("http://www.yandex.ru"); " База норм пропатчилась. (IMG:style_emoticons/kolobok_light/good.gif) Слава богу, наконец то. (IMG:style_emoticons/kolobok_light/biggrin.gif) Лог ошибки по проверке соединения: Подробная информация об использовании оперативной (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) |
![]()
Сообщение
#48
|
|
Level 4 ![]() ![]() Класс: Маг Характер: True Neutral Раса: Человек ![]() |
пишу в том порядке в каком увидел: - Для среднестатистического конечного пользователя стал слишком сложный интерфейс. Если очень хочется предоставить расширенные настройки по конвертированию, лучше их "спрятать" в адвансед опшнс, но не дать простым пользователям шанса их "случайно" заюзать. Ммм... подумаю над этим. (IMG:style_emoticons/kolobok_light/smile.gif) - Все известные эксепшны (например, если БД недоступна) не содержащие какой-либо полезной информации для разработчика (например строку подключения) в финале можно заменить в итоге на юзер-френдли сообщения. Такие большие простынки, как правило пугают их. Да, тут только лень. Со временем обработаю все. - Я тыкаю на кнопки и... ничего не вижу =) только кроме того, что открывается следующая кнопка. Это немного противоестественно, ИМХО. Хочется мессаджа "All Done"? (IMG:style_emoticons/kolobok_light/smile.gif) Сделаем (хотя сам такие не люблю). - Я, простой американский бой. Вбиваю от балды пароль в поле пароля и на этапе "проверка соединения" получаю ошибку, причем не обрабатываемую приложением, а в стандартном виндовском окне (текст ошибки ниже). Логично, ведь моя база без пароля, а с Integrated Sequrity. Странно, я же хотел прикрутить проверку... наверное забыл... окей, поправлю. (IMG:style_emoticons/kolobok_light/unsure.gif) - После того, как база пропатчилась я решил не экспериментировать и не нажимать "Исправление базы" снова. Предоставляю это сделать тебе =D. Но намек ты понял, думаю (IMG:style_emoticons/kolobok_light/crazy.gif) А вот зря не пробовал - я вот регулярно и десятка три к ряду. (IMG:style_emoticons/kolobok_light/smile.gif) Умные OleDbCommand просто не выполняется, видя, что колонки уже приведены к нужным типам. - Если тебе захотят написать письмо или скопировать линк форума при ошибке - заипутся, ибо не не выделяемые строки. Если ты используешь свою форму - поставь на все ссылки LinkLabel а в обработчик - что-то типа "System.Diagnostics.Process.Start("http://www.yandex.ru"); Хм, а вот тут можно поподробнее? (IMG:style_emoticons/kolobok_light/scratch_one-s_head.gif) Цитата База норм пропатчилась. (IMG:style_emoticons/kolobok_light/good.gif) Слава богу, наконец то. (IMG:style_emoticons/kolobok_light/biggrin.gif) (IMG:style_emoticons/kolobok_light/yahoo.gif) |
![]()
Сообщение
#49
|
|
Ушедший на войну ![]() Класс: Маг Характер: Chaotic Good Раса: Человек NWN: Контент ![]() |
Цитата Хм, а вот тут можно поподробнее? scratch_one-s_head.gif О чем поподробнее, конкретно =) |
![]()
Сообщение
#50
|
|
Level 2 ![]() Класс: Бард Характер: Lawful Good Раса: Человек ![]() |
Так что, можно пробовать? (IMG:style_emoticons/kolobok_light/biggrin.gif)
|
![]() ![]() |
Текстовая версия | Сейчас: 25th April 2025 - 20:18 |