|
|
|
| я запутался в версиях VB, вопрос- в Visual Studio 2008 какая версия VB, меня интересует VB.net и есть диск со студио, а какой VB разобраться не могу, а где взять VB.net? | |
|
| |
|
|
|
| Visual Studio 2008 - это среда разработки.
Поддерживает языки VB.net, C#, C++, Java. Доступ к данным через Ado.Net и т.д.
Для работы нужен Framework (вроде бы 2.0 и в Vistа вроде уже есть)
ЗЫ. А для чего именно VB.net?
ЗЗЫ. Вам шашечки или ехать? | |
|
| |
|
|
|
| Да, вот раньше программировал на ВБ до 5,0 потом ситуация изменилась и посление несколько лет сижу на акцесс и сиквэле, а тут понадобилось написать прогу по обработке какалогов на диске ... Можно, конечно, на ВБА сделать из-под акцесса, но хочется подтянуться до более современного уровня (задача невелика и время не сильно ограничено) и вот есть диск со студио, но что там за ВБ и чему он сейчас соответствует - не знаю. Знаю, что современно это ВБ.нэт Может я чего не догоняю и мудрю излишне, тогда буду благодарен за добрый совет ... | |
|
| |
|
|
|
| VB.Net несколько отличается по синтаксису от VB6 и VBA.
E VB.Net есть ряд преимуществ, по сравнению с VBA. Но и при работе с базами данных придется писать больше кода, ежели в аксе.
А так,VB.Net. - это просто новая версия языка. | |
|
| |
|
|
|
| Стало быть файл типа EXE - создать плёвое дело??? | |
|
| |
|
|
|
|
|
| .Net сам создает экзешник - ( Конечно, если речь не идет об ASP.NET - там экзешника нет в принципе) | |
|
| |
|
|
|
| Ясно | |
|
| |
|
|
|
| Если начинаешь с нуля, то учи лучше C# - более востребовано. | |
|
| |
|
|
|
| Востребовано более, но я читал плюсы на стороне VB | |
|
| |
|
|
|
| И какие же енто плюсы? Начиная с VS2005 C# и VB.NET полностью сравнялись по возможностям,т.к. весь код компилятор переводит в язык CIL | |
|
| |
|
|
|
| Я в прошлом веке изучал VB6 на нём писал проги простые.
Пока не понял, что базы данных более востребовааны.
Access был у всех пиратско условно бесплатный и прост и доступен
Я на нём и писал для нужд офисных.
Кстати я не знаю - что за программа - которую нельзя написать на аксе.....
Разве что крутые игрушки - это понятно ...крутая графика тут не лучшая среда, хотя тожэ всё возможно впринципе.....
Единственное что отталкивает - это дороговизна при распространении - так как среду-оболочку надо закупать отдельно, а цена её в сложении с продуктом - уже велика ...
(Моё мнение) | |
|
| |
|
|
|
| Единственное что отталкивает - это дороговизна при распространении - так как среду-оболочку надо закупать отдельно, а цена её в сложении с продуктом - уже велика ... | Что такое среда оболочка ? | |
|
| |
|
|
|
| Это та среда (четверг, тяпница),
в которой созданное творение ( xxx.mdb )сможет работать.
Как кукла на верёвочках.
Это сам Access .......... | |
|
| |
|
|
|
| Microsoft демонстрирует обновленный интерфейс Visual Studio 2010
http://soft.mail.ru/pressrl_page.php?id=32812
==============================================================
Кстати чё сколько стоит
http://soft.mail.ru/subcat_list.php?cat=208 | |
|
| |
|
|
|
| Если не секрет зачем среду-оболочку (аксес) закупать отдельно для распространения?
| |
|
| |
|
|
|
| Вы шутите????
Или подшучиваете.....
==========================================
Заказчик приобредает у меня программный продукт за 100 рублей
Что бы сделаное мною (программный продукт) - работало у заказчика на компе,
ему необходимо приобрести и установить на комп - MS Access. за дополнительую сумму....
Либо MS Office в состав которого входит MS Access.
Это и есть дополнительные расходы.
========================================== | |
|
| |
|
|
|
| А что мешает отдать заказчику вместе со сделаным вами (программным продуктом) Аксесс Рантайм, вместо MS Access
| |
|
| |
|
|
|
| У меня с рантаймом не хотят проги работать......
Возможно конечно из-за разности версий
проги в MS Access 2000-2002
Runtime - 2007,
другого не нашёл для скачки -
как не искал - не попадается.
=======================================
Поэтой причине весь сыр бор...........
Кстати у тебя случайно нет Runtime подходящего???
Может будет работать - если версии совпадут
=======================================
А Вы (ты) пользуетесь Ранеаймом??? | |
|
| |
|
|
|
| У меня проги на Аксе2000 и Рантайм 2000 работают как часы
Так что пожалей деньги своих заказчиков
Рантайм 2000 попробую отправить на мыло | |
|
| |
|
|
|
| У меня и на 2007 все вроде как работает, но сложилось ощущение, что 2007 и Access и Runtime прощают меньше ошибок, чем 2003. | |
|
| |
|
|
|
| Видимо что то изменилось в среде обработки-разработки-выработки.....
ХР - его знает.
=======================================================================
Я вот везде вставляю обработчик ошибок - а Рантайм всё равно вываливается и руается - чёж ты ошибок понаделал????
Одна самая простая прога по печати самоклеющихся наклеек на спец принтере только и работает - тьфу тьфу тьфу тьфу
прога 2000
Рантайм 2007
==========================================================================
А может у кого ссылочка имеется на рантайм 2000
или на Runtime 2000 - 2002 | |
|
| |
|
|
|
| А чо мешает использовать связку VB6-какая нибудь СУБД? | |
|
| |
|
|
|
| Ответ:
| |
|
| |
|
|
|
| А как по эффективности???
Запросы - так же запросто там использовать можно -как и в аксе?
Отчёты как формировать - на внешних файлах - типа excel?
Коннектиться кажный раз придётся - это видимо - тормоза.
Да и сам VB6 - тормоза видимо....... | |
|
| |
|
|
|
| VB6 для этого не использовал. Юзал .Net. ОСОБЫХ тормозов не наблюдал. Запросы используются так же как и в аксе + доп возможности самого SQL server.
Отчеты в эксель - нет проблем. Целая куча разных способов.
К тому же для создания отчетов есть встроенный механизм CristalReport.
Каждый раз коннектится придется - но на этом основан весь принцип ADO.NET - коннектишься, забираешь данные и с ними работаешь.
Наличие тормозов прежде всего объясняется несколько заторможенной работой SQL server, но и в большей степени правильностью логики создания запросов, но все равно - тормоза такие же как и в ADP. | |
|
| |
|
|
|
|
|
|
пишу две базы, и потому пока изучением нового нет времени заняться
|
Так у тебю ж есть уникальная возможность сразу двух зайцев поиметь - и новое изучить и бабла срубить - делай один из проектов на чем-нибудь новом. Стимул офигенный ( как в старом ералаше - по бразильской системе )
Я тока так и выучил дот нет - иначе в перерывах до сих пор бы не сел читать. | |
|
| |
|
|
|
| Вопрос.
Вот я скачал данные с сервера, поработал с ними (Add,Edit,Delite), давлю педаль сохранить.
Мне в ответ примерно такое: "Отказать, нет доступа к источнику данных".
А мне вроде как выключать ящик пора и в семью.
Куда девать изменения?
К каждому набору данных делать механизм сохранения и восстановления данных, или он есть встроенный? | |
|
| |
|
|
|
| К каждому набору данных создавать свой механызьм добавления, изменения, удаления.
И истчо, для верности, завернуть сие механизмусы в транзакции. | |
|
| |
|
|
|
| Я имел в виду "аварийную" ситуацию, когда "основной" сервер данных аварийно недоступен.
Дабы не пропадали труды, сливать - восстанавливать во временный (на этой же машине) файл(файлы).
Вы это-же имели в виду? | |
|
| |
|
|
|
|
Я имел в виду "аварийную" ситуацию, когда "основной" сервер данных аварийно недоступен
|
Имел ввиду не это, но в принципе подход тот же - если транзакция откатилась - запуск функции, которая сливает данные куды-нибудь - лучше всего в XML ( там можно создать кучу таблиц и установить связи между ними). | |
|
| |
|
|
|
| ....
Далее следует непереводимый итальянский фолклёр, с использованием местных идиоматических выражений.
ОК, понял всю прелесть отсутствия постоянной связи с источником.
Спасибо, удружил. | |
|
| |
|
|
|
|
Далее следует непереводимый итальянский фолклёр, с использованием местных идиоматических выражений.
|
Dim cmd As SqlXmlCommand
cmd = New SqlXmlCommand("Provider=SQLOLEDB;Server=ws-1-2;database=aspnetdb;Integrated Security=SSPI;")
cmd.CommandText = "Select* FROM Tbl1 FOR XML AUTO,Elements"
Response.ContentType = "application/vnd.ms-excel"
'Response.ContentType = "type=text/xml"
cmd.RootTag = "ROOT"
cmd.XslPath = Server.MapPath("XSLTFile.xsl")
Response.Clear()
cmd.ExecuteToStream(Response.OutputStream)
|
Вот пример который формирует XML поток и выдает данные в эксель на основе созданного шаблона XSLT.
Как видишь - все значительно проще, чем кажется.
(Данный пример выгружает 62 тыс записей в эксель за ~4 сек.) | |
|
| |
|
|
|
| Давай рассмотрим такую ситуацию.
Допустим, основная таблица моей БД на MS SQL-server имеет порядка 50 полей, 20 из которых являются внешними ключами к справочным таблицам, которые тоже имеют внешние ключи к своим справочным таблицам.
Я загружаю с сервера в датасет со строгим контролем типов допустим 10-20 записей основной таблицы и все записи всех справочных таблиц.
За время работы, я изменяю и добавляю записи в основной таблице + добавляю и изменяю некоторое количество записей справочных таблиц.
При аварийной ситуации, я должен сохранить информацию об измененных (удаленных, добавленных) записях (нет смысла сохранять все считанное с сервера или есть?).
Для этого вывожу структуру с данными в XML (кстати, преобразование структур не потребуется?).
Завтра утром, я загружаю данные из временного источника XML. Далее мне надо их передать в основную БД на сервер, т.е. удалить удаленные, изменить измененные и добавить новые.
Будет-ли датасет после загрузки различать какие записи как удаленные, измененные и добавленные? Я ведь их только считал и в текущем сеансе еще не правил?
Или нужно сразу, без предварительной загрузки в датасет, гнать изменения из XML в БД сервера.
В общем, пока для меня темный лес.
| |
|
| |
|
|
|
| Давай попорядку
Я загружаю с сервера в датасет со строгим контролем типов допустим 10-20 записей основной таблицы и все записи всех справочных таблиц.
|
В датасет нет смысла загонять все записи справочных таблиц.
Ведь когда работаешь с рекордсетом, ты же не гонишь в него все свои справочники.
Загоняй только те данные, которые необходимы для выполнения запроса.
За время работы, я изменяю и добавляю записи в основной таблице + добавляю и изменяю некоторое количество записей справочных таблиц
|
При каждом изменении и добавлении записей - создается подключение к базе и данные заносятся в базу.
Твой вариант нужен только для полного офисного планктона, типа как у нас на фирме - с утра она загрузила проект, после обеда - чего-то там изменила, а под вечер нажала кнопку сохранить.
При аварийной ситуации, я должен сохранить информацию об измененных (удаленных, добавленных) записях
|
В этом случае ты рискуешь потерять только те данные, которые находятся в настоящий момент в датасете.
Тут нет смысла создавать сложные по структуре XML файлы - просто сбрось в XML данные из своего датасета, а после восстановления соединения - заполняй датасет из XML файла и работай далее. | |
|
| |
|
|
|
|
При каждом изменении и добавлении записей - создается подключение к базе и данные заносятся в базу.
|
Это с одной стороны правильно, но тогда фактически теряется главное достоинство - отсоединенный режим. Фактически, на каждый чих, мне нужно лезть на сервер.
То есть, все это можно реализовать и в MDB-шке с отвязанными формами и отчетами, каждый раз стучась в сервер.
В датасет нет смысла загонять все записи справочных таблиц.
|
Мне же надо заполнить комбобоксы и списки в форме, связанной с основной таблицей.
Есть-ли смысл каждый раз при открытии формы считывать данные с сервера? Хотя в многопользовательской среде наверное есть. Или все-таки правильнее синхронизировать наборы при открытии формы, а не качать заново?
PS. Я не сильно похож на Рабиновича, который бегает вокруг бассейна, и спрашивает у всех "А как там в воде?" | |
|
| |
|
|
|
|
Фактически, на каждый чих, мне нужно лезть на сервер
|
Вот Именно. В этом и есть достоинство, а не недостаток.
Мне же надо заполнить комбобоксы и списки в форме, связанной с основной таблицей
|
Для каждого комбобокса или списка - свой датасет.
Ведь, если ты изменишь справочник, тебе придестся обновлять и данные в комбобоксе, который показывает этот справочник.
Отседа вывод - при изменении справочника - отсылаешь на сервер изменения и заново обновляешь датасет для комбобокса.
И ИСТЧО РАЗ - не нужно пытаться загнать максимум данных на локальную машину - данные загоняются и изменяются по мере необходимости. | |
|
| |
|
|
|
| А чтобы не прописывать каждый раз кучу кода в качестве строки соединения и формирования датасета в файл app.config засовываешь строку подключения
<connectionStrings>
<add name="MogJilConnectionString" connectionString="Data Source=I-SERVER-TWO;Initial Catalog=MogJil;Integrated Security=True"
providerName="System.Data.SqlClient" />
</connectionStrings>
|
Но только со своими параметрами.
А затем создаешь класс подключения Что то типа этого ( правда это для ASP.NET )
Imports Microsoft.VisualBasic
Imports System.Data.SqlClient
Imports System.Data.SqlClient.SqlConnectionStringBuilder
Imports System.Web.Configuration.WebConfigurationManager
Imports System.Data
Imports System.Data.DataSet
Public Class DsConnQuery
Dim ds1 As DataSet
Dim strConn As String
Dim datset As New DataSet
Public Property ds(ByVal strQue As String, ByVal tbldsname As String) As DataSet
Get
strConn = Web.Configuration.WebConfigurationManager.ConnectionStrings("MogJilConnectionString").ConnectionString
Using cn1 As New SqlConnection(strConn)
cn1.Open()
Dim datada As New SqlDataAdapter(strQue, cn1)
datada.Fill(datset, tbldsname)
cn1.Close()
End Using
ds = datset
End Get
Set(ByVal value As DataSet)
ds1 = value
End Set
End Property
End Class
|
| |
|
| |
|
|
|
| Спасибо, я это тоже хотел вопрошать, но несколько позднее. | |
|
| |
|
|
|
|
не нужно пытаться загнать максимум данных
|
Да какой-там максимум.
Но для добавления записи в основную таблицу, мне надо выбрать значения из 20 справочных таблиц, так что хочешь или нет, а тащить 20 наборов данных справочных таблиц придется.
Другое дело, что это можно сделать или один раз (при открытии приложения), или каждый раз, при открытии соответствующего справочника(один набор) или 20 наборов для формы общей таблицы. | |
|
| |
|
|
|
| Ежели тебе нужно заполнять 20 комбобоксов или листбоксов то придется делать делать 20 датасетов ( если данные не дублируются ) Но создать их можно в одном подключении.
А при занесении данных - тоже одно подключение и в нем запрос на добавление. | |
|
| |
|
|
|
|
| Ваащето пора, но я решил влезть в очередную аферу - изучить C#.
Потому щас переписываю свой проект на ентом языке. Так, что еще посижу чуток поразбираюсь в ентом звере. | |
|
| |
|
|
|
|
|
| Понятно....
NET так NET - то есть нет лучшее.......
А чё та я везде читаю - запугивают меня сообщениями о том, что если у Вас визуал студио на одном диске - то это не виз.студио, а хрень.
Вот ежели на четырёх дисках - во тада это да!!!!!
=============================================
А может у кого ссылочка имеется на рантайм 2000
или на Runtime 2000 - 2002 | |
|
| |
|
|
|
| Сережа, не ищи 2000, ищи баги в своем коде, правь, юзай 2007. | |
|
| |
|
|
|
| Спасибо -я тоже склонен к этой верси, но уже понаставили мои немногочисленные клиенты - 2000, для новых - буду писать на 2007
- послушаюсь твого совета - уже весна, а скоро лета....... | |
|
| |
|
|
|
| Пиши на А2000(2003,2007, какой удобнее), у клиентов ставь Runtime2007, если нет акса. | |
|
| |
|
|
|
|
| Прислушаюсь твого совета
Ах да, уж эта песня спета (см. выше) | |
|
| |
|
|
|
|
А чё та я везде читаю - запугивают меня сообщениями о том, что если у Вас визуал студио на одном диске - то это не виз.студио, а хрень.
|
2005 студия весит 2 с лишним гига. | |
|
| |
|