Э-не, холивар тут начался со второго поста темы. Одно сообщение по теме увидел.[quote=“DonPas, post:4, topic:1418, full:true”]
В приложениях Windows Forms, на вкладке Данные есть компоненты для работы с БД.Как с ними работать, можно прочитать в книгах по Си-шарпу.
[/quote]
К слову, пост был написан как ответ абсолютно оффтопному посту:
Сказали, как отрезали. Я б только богомерзкие begin/end на скобочки заменил, и заставил бы скобки писать после вызова функций без параметров, а так норм езыг.
P.S. Даешь Scala в школы!
P.P.S. Предлагаю модерам создать тему “PABC.NET vs C++/C#/Java/Python/*** для школ”, и прикрепить ее для холиваров по данному топику. Они тут раз в неделю.
И чего? Ну пришли на форум в тему “Среда PascalABC.NET” и пытаетесь тут что-то доказать или показать С-образное? Это пустое занятие совершенно.
Холивары - они всегда были и будут, ибо снобов от программирования - пруд-пруди. А Сишники - они, несомненно, большие снобы, каковыми когда-то были “чистые системщики”. Я сам в них был когда-то и долго, знаю не понаслышке. Но жизнь штука такая - она все по местам со временем расставляет. Как говорила героиня известного фильма: “И тебя вылечат…”
У меня всегда включается butthurt_mode, когда кто-то рассказывает о бесполезности С++ за исключением байтодроча. Ничего не могу с собой поделать Гхм, непонятно, кстати, почему рассуждения о магнитных пленках и Коболе - это не оффтоп, а мои посты - оффтоп. Дискриминация!
Это ставить диагнозы пустое занятие, можно ведь и свой диагноз узнать, а обсуждать разные темы на форуме как раз правильное занятие. Если по теме диалога сказать нечего, то помолчите или другую тему создайте “Почему все вокруг не правы, а я д’Артаньян” и пишите там какой у вас богатый опыт и каких “ужасов” вы повидали.
Здравствуйте.
Благодарю Всем, кто принял участие на форуме по обсуждение этой темы.
Но все таки, давайте кто сможет, шаг за шагом создание таблиц данных в проектах на языке PascalABC.NET. Уже один помощь есть, вместе с С шарпом. Но надо както все через PascalABC.NET, чтобы обучать учащихся-отличников.
Пример перевода(первые пара примеров кода, остальные аналогично):
{$reference System.Data.dll}
uses System.Data.SqlClient;
begin
var conn := new SqlConnection('user id=username;' +
'password=password;server=serverurl;' +
'Trusted_Connection=yes;' +
'database=database; ' +
'connection timeout=30');
write('Done!');
end.
Так уж сложилось, что переписывать MSDN от начала до конца(а именно он и нужен в качестве документации, т.к. PABC.NET наследует все возможности .NET по умолчанию) никто не будет по причине его недюжинного размера. В такой ситуации не имеет смысла искать документации непосредственно на этом языке, и вместо этого стоит искать информацию о том, какое API по тем или иным вопросам предоставляет платформа .NET.
Если Вы хотите не детские игры с табличками, а нормальную работу с БД, надо брать какую-то СУБД, создавать в ней базу данных и уже потом работать с ней из приложения на паскале. Писать же в паскале СУБД с нуля - совершенно ненужное и бесперспективное для школьников дело.
Это может быть как “база данных для дантистов и юристов” (MS Access), так и что-то более серьезное, например, на клиент-серверной платформе, тот же MS SQL.
Для этой цели в случае MS Access нам надо построить интерфейс c движком этой базы и передавать ему SQL-операторы. Конечно, могут понадобиться параметры для установления соединения с БД. Собственно, механизм доступа к MS Access давно отработан.
{$reference System.Data.dll}
uses System.Data.OleDb;
begin
var oConn:=new System.Data.OleDb.OleDbConnection;
oConn.ConnectionString:=
'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=H:\Temp\DBA.mdb;';
oConn.Open;
oConn.Close
end.
Прежде всего, спасибо JediKnight за пример - это ответ по теме топика.
Остальных я прошу отвечать ровно по теме. Ответы в стиле “Пользуйтесь языком C# или C++” - неконструктивны. Как мы могли видеть, они уводят далеко от темы и затем помещаются в разное. Ответ типа "посмотрите MSDN - здесь - и переведите на Паскаль - бесспорно, конструктивен. Ответ вида “возьмите MS ACCESS раз это простая база” - бесспорно, неконструктивен.
Я призываю вас давать здесь простые конструктивные ответы. К примеру, подключение {$reference System.Data.dll} может быть для автора топика сложным - вы ему подсказали - это здорово.
С удовольствием и благодарностью посмотрю Ваш пример подключения БД MS Access через SqlClient с реализацией доступа посредством ADODB.
Из VB/VBA - да, можно, хотя и там ADODB на самом деле работает с помощью… OLEDB-провайдера
Вот фрагмент кода на VBA.
Set oConn = New ADODB.Connection
With oConn
.Provider = "Microsoft.Jet.OLEDB.4.0"
.ConnectionString = "H:\Temp\DBA.mdb"
.Open
If .State = 0 Then
.Close
Set oConn = Nothing
End If
End With
К сожалению, воспользоваться ADODB в PascalABC.NET у меня не получилось: я попросту не нашел нужной библиотеки (и стал подозревать, что её и нет).
Судя по Вашей реплике, Вы знаете, как подключиться по ADODB, засим с нетерпением жду кода.
Судя по моей реплике, технология OLE DB устарела, а значит этому не надо учить в школе. Я про подключение к БД MS Access ничего не писал. Мое личное мнение на этот счет такое: если вам надо использовать MS Access, используйте его, но если вам его не хватает настолько, что приходится писать программу на C#, то задумайтесь о переходе на другую технологию БД. В отличии от мнения об OLE DB, подкрепить весомыми доводами не могу.
@ahtam я перечитал название темы и понял, что пост @JediKnight не отвечает на вопрос как создать БД, а отвечает на вопрос, как создать подключение к существующей БД.
Вам стоит уточнить,что Вам нужно: подключиться к БД или создать БД? Честно говоря, создавать БД из C# никогда не приходилось и, судя по ответам, все участники диалога думают именно о подключении, а не о создании БД.
Кстати, Вы упомянули таблицы, так вот представление таблиц/выборок и подобного в C# это объект DataSet.
Судя по Вашему ответу, в школе нужно учить подключению к MS SQL Server, несмотря на то, его в школах нет и не изучают, а изучают MS Access, к которой подключаться не надо, но лишь потому, что Вам не нравится OLE DB. А С# тут вообще никаким боком не валялся, если что.
Как итог: Вы отказываете в праве быть какому-то “плохому” решению, не предлагая взамен никакого. Таких горе-критиков - пруд-пруди. Только реальной пользы от них, простите уж, ноль…