Какие-нибудь скриптовые языки поддерживают БД MS Access (*.db)?
да, и 1С тоже может работать по тому же принципу (чем не скриптовый язык)
пока не хочется прибегать к услугам mysql
пока не хочется прибегать к услугам mysql
если они поддерживают OLE и аксесс стоит - пожалуйста через апи аксессовское работай
mycursor = myconn.cursor()
mycursor.execute('SELECT * FROM db_name')
mydata = mycursor.fetchall()
mycursor.close()
myconn.close()
и при переходе на mysql также проблемм не будет, разве что те, которые касаются типов данных БД могут появиться
пока не хочется прибегать к услугам mysql
а к чему такое извращение? Если не секрет конечно. Имхо "прибегать к услугам акцесс" при том что имеется явно стремящийся к нулю опыт работы с БД в указанных языках (иначе тогда странен сам вопрос)...
kot_, скорее всего понадобилось заливать MS Access'овскую базу в веб-приложение для каких либо целей. ну, по крайней мере у нас такое было (клиент хранил данные в mdb а нам пришлось переливать в mysql, вот и намучились)
Автору: для perl есть модуль - http://search.cpan.org/search?query=msaccess&mode=all
Кстати, у нас тоже использовалась как бд через одну прослойку и Interbase и Access, сейчас MySQL. Популярное мнение что Access - изврат, по-моему, немножечко таки преувеличено, довольно надёжная весч, но я бы его таки не использовал. Sqlite неплохой аналог, тож в одном файле база.
Не в обиду будь сказано, мне например известно, что существуют люди с так называемой нетрадиционной сексуальной ориентацией. И некоторые даже утверждают что типа "это нормально" и "стоит попробовать". Но это вовсе не повод для меня считать подобное нормальным. (естественно это никаким образом не относится к участникам дисскусии, просто пример)
Тоже касается и акцесса. все что касается настольной системы для пользователя - да надежно и хорошо - все что выходит за эти рамки, а в особенности если это еще и не мелкосовтовская технология - сплошное извращение. ИМХО.
Где-то слышал, что есть особые отделы компании Микрософт, не они ли над Access трудились? :))) http://cnews.ru/news/top/index.shtml?2009/06/02/349409
Еще в 1989 г., одной из первых среди крупных корпораций, компания Microsoft предложила льготы работающим у них однополым парам, ведущим совместное хозяйство. То есть, по сути, уравняла их с традиционными парами. Кроме того, положение о сексуальной ориентации было включено в антидискриминационную корпоративную политику.
CNEWS
ps. Всего в микрософт на 2008-й год где то 91000 сотрудников.
Как-то раз выполнял я несложный запрос (две таблички объединяем, потом группируем и фильтруем с помощью предиката HAVING) в Access. Таблички не широкие, одна 1.5 млн записей, другая 500 тыс. Индексы по нужным полям, естественно, построены. Access 2003 пережёвывал всё это минут 6. Тот же самый запрос с теми же табличками на той же самой машине под Oracle 9i выполнился за 0.47 с. Машинка Cel-2533, 1 Гб оперативы. С тех пор в качестве настольной СУБД, если надо по-быстренькому залить и перелопатить данные, предпочитаю Oracle 9iR2 и TOAD 8 в качестве SQL-конструктора.
Хотя полтора миллиона записей для акцесса уже много. Он и на меньшем количестве может затыкаться основательно. Кроме того, файл блокировок который создается при доступе тоже работу может подтормаживать изрядно.
Но в прочем речь не про то. Если топикстартер понимает, для чего ему это надо - то Бог в помощь. Я собственно вопрос задал не с целью расказать какая прохая БД.
а что ж тогда на .NET перешел ? :) или это только аксесса касается?
это про что?
Сравнил Х с П :p
ps. Это вообще разные категории и в долларовом эквиваленте и в кол-ве файлов базы и в скорости и в експиренсе программистов(на тот случай если с Oracle что то неправильное случиться, а надо лечить.)
ps. Это вообще разные категории и в долларовом эквиваленте и в кол-ве файлов базы и в скорости и в експиренсе программистов(на тот случай если с Oracle что то неправильное случиться, а надо лечить.)
Насчёт разных долларовых эквивалентов -- это верно. Oracle дешевле (10g Express бесплатный).
На случай "если что" в Oracle три разных способа "горячего" бэкапа инфы: экспорт, alter tablespace begin backup ... end backup и rman. Если программер неловким движением руки накарябал "delete from table1; commit;" -- для этого есть ретроспективные запросы (а что Access предложит?)
Количество файлов в базе -- вообще, какой-то детский аргумент. Какая разница, сколько их?
По поводу лечения: Oracle намного устойчивее ко всякого рода "зависонам" и т.п. Разрушенный индекс восстанавливается командной alter index rebuild (при этом, БД Oracle не теряет работоспособности при разрушении индекса, в отлисчие от...). А если БД рушится не по программным, а по аппаратным причинам, меняйте "железо", потому как аппаратные проблемы программными средствами не решаются.
А, простите, Х и П -- это что? Хайнекен и Пльзеньский Праздрой?
Забыл добавить, это сравнение X c П еще и по аппаратным затратам. А насчёт кол-ва файлов, я могу привести тебе кучю аргументов, только смысла не вижу. Не ну вообще сравнивать их дико конечно ))))
ps. Простите меня за мою извращённую логику, но кол-во файлов, косвенно указывает уже на более высокие аппаратные завтраты)), потому уже это сравнение не детское, и точно такие же соотношение будет наблюдаться по аппаратным затратам мозга у людей, некоторых с неособо прямыми руками, которые будут обслуживать системму.
ps. Простите меня за мою извращённую логику, но кол-во файлов, косвенно указывает уже на более высокие аппаратные завтраты)), потому уже это сравнение не детское, и точно такие же соотношение будет наблюдаться по аппаратным затратам мозга у людей, некоторых с неособо прямыми руками, которые будут обслуживать системму.
Множество открытых файлов ещё не означает большие аппаратные потребности. Забудьте про MS-DOS и 640 Кб как про страшный сон.
За "десятку" не скажу, а Oracle 9iR2 я "втискивал" в 120 Мб оперативы. При выполнении вышеописанного запроса Access отожрал порядка 800 Мб, для Oracle я на ту же задачу выделил 300. А теперь, уважаемые знатоки, внимание, вопрос. Кто из них -- Access или Oracle -- требует больше ресурсов? Даже если Oracle 10g Express захочет оперативы вдвое больше, чем 9i, Access всё равно в одном не очень привлекательном месте...
Oracle 10g Express ставится не сложнее Access и в настройке не нуждается. По крайней мере, для "настольных" задач и одного пользователя ничего менять не надо.
Хочу спросить: какие виды обслуживания, по-вашему, нужны для Access и Oracle 10g Express, работающих в качестве "настольных" СУБД? Я вижу только один, если это можно назвать обслуживанием: если сильно требуется надёжность, один раз настроить впланировщике задач выполнение скрипта резервного копирования. Так он не намного сложнее, чем скрипт резервного копирования для Access.
MS SQL, MySQL, PostgreSQL, Progress, Oracle, Access (который конечно все таки язык не поворачивается назвать полноценной СУБД, но раз уж популярен...)...
зы. Да и желательно расписать круг задач, для которых целесообразно использовать тот или иной инструмент. Для меня лично это даже будет самым главным пунктом и самым интересным.
Конечно чем больше открытых файлов тем лучше для тазика, жаль что для этого есть ограничения, напрасно :D
За "десятку" не скажу, а Oracle 9iR2 я "втискивал" в 120 Мб оперативы. При выполнении вышеописанного запроса Access отожрал порядка 800 Мб, для Oracle я на ту же задачу выделил 300. А теперь, уважаемые знатоки, внимание, вопрос. Кто из них -- Access или Oracle -- требует больше ресурсов? Даже если Oracle 10g Express захочет оперативы вдвое больше, чем 9i, Access всё равно в одном не очень привлекательном месте...
Слушай, я один раз в жизни видел тот Оракл это был 600-й селерон, и на нём сервер оракл стартовал больше полчаса, может это было в ранних версиях так, незнаю, но согласись, ставить его на специализированную тачку, например медицинского оборудования (процы там могул быть и на 200 мегагерц x86, Vortex например) или чего-то в таком же плане, просто тупо, пациент раньше умрёт, чем оно загрузиться, к тому же благодаря стоимости лицензии на тот оракл на одну тачку(слышал про 500 штук, поддержка в год где то 3 лимона для важных обьектов без неё стараються не обходиться), медуслуги у нас явно подорожают. Не спец я по базам большой, конечно есть какие-либо более приемлемые решения Оракл, возможно..
ps.Сравнил X c П ))
Изволь выражаться яснее.
Ага, Access 2007, надо думать, на Cel-600 или Vortex-200 вообще летать будет. Кстати, разговор про старт Oracle на Cel-600 -- разговор беспредметный. Неизвестно, сколько там оперативной памяти, какое программное обеспечение установлено не него помимо собственно Oracle, какие жёсткие диски (лично сталкивался с ситуацией, когда на P3-800 стояло 2 жестких диска, один на 500 Мб [не путать с Гб], второй на 300 Мб и 64 метра оперативной памяти; угадайте, сколько времени грузилась операционная система). Наконец, какие были условия старта. Может быть, он стартовал после выключения питания "на полном скаку", и ему пришлось базу данных накатывать из Redo Log.
Да, не знаю, как на Cel-600, а на Cel-850 512 Мб ОЗУ я Oracle 9iR2 пускал. Немного медленно, но приемлемо, даже с учётом запущенного одновременно с ним C++ Builder 6.
И ещё: если эта некая медицинская софтина вообще не запустится, потому что в предыдущий раз зависон был и акцессовский индекс посыпался, пациент от этого возрадуется и выздоровеет? А врач-реаниматолог сходу выполнит в Access процедуру восстановления БД?
И, наконец: мы говорили о "настольных" а не о "встраиваемых" решениях. Для последних свои субд: SQLite, BerkleyDB, и т.п.
"Я слышал" -- забавный аргумент, тем более, что цены можно узнать на сайте производителя/разработчика. Ещё раз повторяю: Oracle 10g Express (который позиционируется как платформа для "настольных" БД) -- бесплатный. Остальные цены можно посмотреть на сайте Oracle Online Store или, например, здесь.
Как я понимаю, это твой самый весомый агрумент? :D
А о чём тогда спор? Я работаю с Oracle с 1998 года (btw, угадайте, сколько раз я за это время обращался в техподдержку Oracle). Аппаратные требования этой СУБД мне известны. Сравнивать мне тоже есть с чем: работал с MySQL, IBM DB2, MS SQL Server.
MS SQL, MySQL, PostgreSQL, Progress, Oracle, Access (который конечно все таки язык не поворачивается назвать полноценной СУБД, но раз уж популярен...)...
Имеет смысл делать обзор технологий. Обзор СУБД - дело весьма не благодарное и во многом субъективное. Что касается акцесса - то как раз СУБД (система управления БД) он и не является - это среда для доступа к данным. Просто используют его не по назначению. Все таки как не крути, но мало находится "гениев" использующих для многопользовательской работы с данными например файлы Excel (или Word например). Хотя я кстати лично такую реализацию видел. И она работала. И возможно работает до сих пор (как - это уже совершенно другой вопрос). Это не шутка. (О том что блокнот можно использовать в качестве онлайн-чата я кажется уже рассказывал.) Ну а если человек имеет навыки программирования (особенно это касается делфи либо билдера)- то первое что приходит ему в голову - использовать в качестве БД MS Access. Тем боле что в делфи слепить программу работающую с акцессом как два байта написать. Тем более что как локальная БД это в меру неплохое решение (ну лучше чем ворд - это однозначно ))) ). Ну а если вы написали удачную программу и она работает локально - то само собой - если возникнет требование сетевой версии, то ничтоже сумняшеся, одним движением руки локальная версия превращается в сетевую. но не переписывать же удачную программу и переносить ее на SQL-сервер если и так работает. :) тем более что 2-3 менегера могут и не замечать взаимоблокировок, особенно если работать не очень интенсивно. А когда их станет 5+директор который собственно как правило и нарывается на них. И вот на этом этапе "гений" начинает шарахаться по форумам пугая всех вопросом "как избежать дидлоков в акцессе" и пр. Это один из вариантов. Иногда бывает что и в принципе грамотный специалист, но не сумел отстоять мнение, иногда просто слабо волокет в БД - и акцесс его полностью устраивает. Иногда это просто действительно самое дешевое и удобное из всех решений (особенно в exUSSR) :) да мало ли что.
2iridum&&Plisteron
От вас поплющило :)
Не знаю как на счет настольной системы - в принципе оракл ничуть не хуже любого другого сервера. Другое дело, что стоит указать "навыки работы в Oracle" и как правило запросы претендентов относительно зарплаты могут вырасти. Но если указать просто "знание SQL" - то зачем платить больше? :)
И, наконец: мы говорили о "настольных" а не о "встраиваемых" решениях. Для последних свои субд: SQLite, BerkleyDB, и т.п.
Нет, мы говорили о "встриваемых" :p.
"Я слышал" -- забавный аргумент, тем более, что цены можно узнать на сайте производителя/разработчика. Ещё раз повторяю: Oracle 10g Express (который позиционируется как платформа для "настольных" БД) -- бесплатный. Остальные цены можно посмотреть
Какая прелесть, но, пожалуй, предпочту что-то бесплатное и с открытым кодом + кроссплатформенное, вот эти 3 качества для меня очень важны, а тут одного(зачёркнуто), двух не хватает
Как я понимаю, это твой самый весомый агрумент?
Да :rolleyes:, смотря что в него вкладывать правда, возможно, ты понял его иначе :)
А о чём тогда спор? Я работаю с Oracle с 1998 года (btw, угадайте, сколько раз я за это время обращался в техподдержку Oracle). Аппаратные требования этой СУБД мне известны. Сравнивать мне тоже есть с чем: работал с MySQL, IBM DB2, MS SQL Server.
Будем меряться П? :D Я не претендую на звание "лучший спец по бд и всё такое", но грамотно выбрать базу для конкретного применения уверен могу, хвастаться с чем работал не буду
Насчёт техподдержки, например точно знаю, операторы сотовой связи крупные, которые юзают оракл, за неё платят, не потому, что
, а потому что им важна большая надёжность в любой ситуации.
PS. Plisteron, сравнение Access и Oracle, это глупое сравнение самоката и камаза )), даже если это Express
ps.
Oracle XE требует минимум 1GB памяти, поэтому если такового объема на мишине нет, то необходимо сделать свап соответствующего размера и подключить его:
$ sudo dd if=/dev/zero of=/swpfs1 bs=1M count=1000
$ sudo mkswap /swpfs1
$ sudo swapon /swpfs1
что ты там про память говорил ?
Доступна только для 32 битный платформ Linux и Windows, очень кроссплатформенно ))
одна база на машину
ограничение размера пользовательских данных до 4GB (объем данных, занимаемый системными таблицами сюда не входит)
использование только 1GB RAM
использование только 1 CPU
Потребление памяти и прочие ограничения OracleXE - обычные для ниши. SqlServer2008/2005 имеет совершенно идентичные ограничения (ессно только под винды, хотя 2008ой есть в x64 версии).
согласен. акцес - чисто для однопользовательских систем годится, а вот обзор все равно неплохо бы сделать. хотя бы технологий. =)
харош троллить. Оракл не чуть не хуже всех остальных систем такого же класса. И каких либо допскиллов для его использования надо не более чем для использования того же FB например.
Где? Здесь я сравнивал работу Access и Oracle на десктопе. Здесь прямо написано: "настольных СУБД", и ты почему-то тогда не возразил. Ты меняешь тему, значит, ты неправ.
Открытый код -- не всегда признак лучшего программного продукта. Про многоплатформенность читай ниже. А выбирать для себя СУБД -- естественно, твоё право.
Я не телепат. Ты оправдываешься: "Я имел в виду не то, а что именно -- догадайся сам." Значит, ты неправ.
Речь шла о дороговизне платной техподдержки. Я сказал, что часто можно обойтись без неё. А почему люди платят за Oracle, я знаю.
Не будем. Мы говорим о конкретных "экспириенсах" в конкретной области.
Oracle XE использует максимум 1 Гб оперативной памяти (тебе для "настольных" приложений этого мало?), читай внимательнее доку. Объём БД 4 Гб для "настольной" БД -- тоже довольно либеральное ограничение (никогда не видел БД такого класса больше 300 Мб). Далее, 32-разрядные Windows и Linux -- это примерно 95% всех PC-десктопов, тебе мало? Кстати, под Win64 Oracle XE тоже работает (под Linux64 не пробовал). Про реальные требования Oracle к оперативной памяти читай мои посты выше.
Согласен.
MS SQL, MySQL, PostgreSQL, Progress, Oracle, Access (который конечно все таки язык не поворачивается назвать полноценной СУБД, но раз уж популярен...)...
На sql.ru такая рубрика есть. По абстрактному вопросу: "что лучше использовать?" -- народ там в большинстве случаев сходится во мнении, что лучше использовать MS SQL, IBM DB2 и Oracle.
ой, так то абстрактный. а я предложил расписать основные субд, и определить круг задач, для которых эти субд приспособлены. а так по абстрактным вопросам можно спорить до второго пришествия.
Тогда конечно. Это было бы полезно. Только это на достаточно серьёзный труд тянет, долго писать надо.
Я не телепат. Ты оправдываешься: "Я имел в виду не то, а что именно -- догадайся сам." Значит, ты неправ.
Детский сад, комплексы и т д, потешу твоё самолюбие, да конечно же я неправ :rolleyes:
Какая разница какой процент, мне надо, чтобы еще и под фрибсд работало, причём даже под старые ядра, где то слышал выражение интересное: "Человек, ставящий квантор всеобщности для сложных реальных сущностей, вызывает большие сомнения в своей адекватности."
ps. Приношу свои извенения, обидеть не хотел :), просто ответы какраз по контексту.
Про любимую или ту, которую лучше знаешь, не катит. Получится набор статей по типу "каждый кулик своё болото хвалит". Надо именно сравнивать разные СУБД (конечно, с условием, что они одного класса). Т.е., имхо, лучше, чтобы кто-то один писал "Oracle vs MS SQL", другой "MS SQL vs IBM DB2", третий "DB2 vs Teradata", четвёртый "Teradata vs Oracle", а потом творчески перерабатывать.
Плюс, надо определиться с критериями сравнения и эталонным тестом (если уж хочется, чтобы всё было по-честному).
Ты перешёл на личности, значит, ты неправ.
На этом я теряю интерес к обсуждению.
Плюс, надо определиться с критериями сравнения и эталонным тестом (если уж хочется, чтобы всё было по-честному).
Я бы с удовольствием написал бы про рациональность использования MS SQL различной лицензии и Firebird. ТОлько ИМХО - надо именно не vs а &&.
Коль скоро мы взялись за сравнение СУБД всерьёз, требуется выработать набор критериев.
Для затравки мои пять копеек:
1. Надёжность, в т.ч. при внезапной остановке (зависание, сбой питания и т.п.) и в стрессовых условиях (недостаток оперативной памяти или дискового пространства).
2. Аппаратные требования (минимальные и рекомендуемые) для работы одного пользователя и для групп разных размеров (10, 100, 1000 пользователей).
3. Документированность (доступность фирменной документации, учебников/справочников независимых авторов, форумов и сообществ в Интернет).
4. Наличие библиотек доступа к БД разработки третьих фирм.
5. Многоплатформенность (под какие платформы существуют сборки или возможность собрать самостоятельно).
6. Возможность кластеризации, распараллеливания, резервирования.
7. Резервное копирование и восстановление информации.
Осталось самое интересное: описать критерии оценки быстродействия, возможностей встроенного языка, обработки транзакций, разграничения доступа к БД и работы БД в многопользовательском режиме (обработка и изоляция транзакций), ну, и плюс дополнительные возможности СУБД вроде ретроспективных запросов и т.п.
ps. может быть, пора создавать отдельный тред?