Ejemplo n.º 1
0
def do_search():

    if output1.size():
        output1.delete(0, last=output1.size() - 1)

    connection = irbis.Connection()
    connection.host = '192.168.7.13'
    connection.port = 6666
    connection.username = '******'
    connection.password = '******'
    connection.database = 'IBIS'
    connection.workstation = 'C'
    connection.connect()
    if not connection.connected:
        output1.insert(END, "Не удалось подключиться")
        return

    expression = '"K=' + keyword.get().strip() + '"'
    found = connection.search(expression)
    if len(found) > 10:
        found = found[:10]

    for mfn in found:
        line = connection.format_record("@sbrief", mfn)
        output1.insert(END, line)

    if not found:
        output1.insert(END, "Ничего не найдено")

    connection.disconnect()
Ejemplo n.º 2
0
    def on_click(self, event):
        self.listbox.Clear()
        keyword = self.input.GetValue()
        if not keyword:
            self.listbox.Append("Не задано ключевое слово")
            return

        connection = irbis.Connection()
        connection.host = '192.168.7.13'
        connection.port = 6666
        connection.username = '******'
        connection.password = '******'
        connection.database = 'IBIS'
        connection.workstation = irbis.CATALOGER
        connection.connect()
        if not connection.connected:
            self.listbox.Append("Не удалось подключиться")
            return

        expression = '"K=' + keyword + '"'
        found = connection.search(expression)
        if len(found) > 10:
            found = found[:10]

        for mfn in found:
            line = connection.format_record("@sbrief", mfn)
            self.listbox.Append(line)
        if not found:
            self.listbox.Append("Ничего не найдено")

        connection.disconnect()
Ejemplo n.º 3
0
# coding: utf-8
"""
Ниже прилагается пример простой программы.

Сначала находятся и загружаются 10 первых библиографических записей,
в которых автором является А. С. Пушкин. Показано нахождение
значения поля с заданным тегом и подполя с заданным кодом.

Также показано расформатирование записи в формат brief.
"""

import irbis

# Подключаемся к серверу
client = irbis.Connection()  # pylint:disable=invalid-name
client.parse_connection_string('host=127.0.0.1;database=IBIS;' +
                               'user=librarian;password=secret;')
client.connect()

if not client.connected:
    print('Невозможно подключиться!')
    exit(1)

# Ищем все книги, автором которых является А. С. Пушкин
# Обратите внимание на двойные кавычки в тексте запроса
found = client.search('"A=ПУШКИН$"')  # pylint:disable=invalid-name
print(f'Найдено записей: {len(found)}')

# Чтобы не распечатывать все найденные записи, отберем только 10 первых
for mfn in found[:10]:
    # Получаем запись из базы данных
Ejemplo n.º 4
0
Простая программа, удаляющая из базы данных RQST
все выполненные заказы (для уменьшения нагрузки
на сеть и сервер со стороны АРМ "Книговыдачи").
"""

import sys
from datetime import datetime
import irbis

if len(sys.argv) != 2:
    print('Usage: irbis_ping <connection-string>')
    exit(-1)

start = datetime.now()

with irbis.Connection(connection_string=sys.argv[1]) as connection:
    try:
        if not connection.connected:
            print("Can't connect")
            exit(-1)

        if connection.workstation != irbis.ADMINISTRATOR:
            print("Not administrator! Exiting")
            exit(-1)

        max_mfn = connection.get_max_mfn()
        if max_mfn < 1:
            print(f"Max MFN={max_mfn}, exiting")
            exit(-1)

        # Невыполненные и зарезервированные заказы