/// <summary> /// Конструктор. /// </summary> public BatchRecordFormatter ( [NotNull] ManagedClient64 client, [NotNull] string format, [NotNull] string query, params object[] args ) { if (ReferenceEquals(client, null)) { throw new ArgumentNullException("client"); } if (string.IsNullOrEmpty(format)) { throw new ArgumentNullException("format"); } if (string.IsNullOrEmpty(query)) { throw new ArgumentNullException("query"); } Client = client; BatchSize = DefaultBatchSize; Format = format; int[] found = Client.Search(query, args); _InitializePackages(found); }
public static int[] Search ( [NotNull] this IrbisConnectionPool pool, string format, params object[] args ) { ManagedClient64 client = pool.AcquireConnection(); int[] result = client.Search(format, args); pool.ReleaseConnection(client); return(result); }
public int[] Search ( [NotNull] string format, params object[] args ) { if (string.IsNullOrEmpty(format)) { throw new ArgumentNullException("format"); } string original = string.Format(format, args); string rewritten = RewriteQuery(original); ManagedClient64 client = Client.ThrowIfNull("Client"); return(client.Search(rewritten)); }
public BatchRecordReader ( ManagedClient64 client, string format, params object[] args ) { if (ReferenceEquals(client, null)) { throw new ArgumentNullException("client"); } if (string.IsNullOrEmpty(format)) { throw new ArgumentNullException("format"); } Client = client; BatchSize = DefaultBatchSize; int[] found = Client.Search(format, args); _InitializePackages(found); }
static void Main(string[] args) { using (ManagedClient64 client = new ManagedClient64()) { //client.AllowHexadecimalDump = true; //client.DebugWriter = Console.Out; client.Connect(); IrbisDatabaseInfo[] databases = client.ListDatabases(); foreach (IrbisDatabaseInfo database in databases) { Console.WriteLine(database); } client.GetServerStat(); //Console.WriteLine(client.GetDatabaseInfo()); //Console.WriteLine("Max MFN={0}",client.GetMaxMfn()); //Console.WriteLine(client.GetVersion()); //Thread.Sleep(100); //client.NoOp(); //Thread.Sleep(100); //string fileText = client.ReadTextFile(IrbisPath.MasterFile, "pst.mnu"); //Console.WriteLine(fileText); //Thread.Sleep(100); //string[] rawRecord = client.ReadRawRecord(2, false); //foreach (string line in rawRecord) //{ // Console.WriteLine(line); //} //string[] found = client.RawSearch("K=A$", 1, 0, "@brief"); //foreach (string line in found) //{ // Console.WriteLine(line); //} //int[] found = client.Search("K=A$"); //foreach (int mfn in found) //{ // Console.WriteLine("{0})", mfn); // Console.WriteLine(client.FormatRecord("@",mfn)); // Console.WriteLine(); //} int[] found = client.Search("K=A$"); string[] texts = client.FormatRecords("@", found); foreach (string text in texts) { Console.WriteLine(text); Console.WriteLine(); } Console.WriteLine(); } }
private static void Main() { try { using (ManagedClient64 client = new ManagedClient64()) { // Подключаемся к серверу client.ParseConnectionString("host=127.0.0.1;port=6666;" + "user=1;password=1;"); client.Connect(); // Ищем все книги, у которых автор начинается на А (кириллица) int[] foundRecords = client.Search("\"A={0}$\"", "А"); // Чтобы не распечатывать все найденные записи, // ограничимся первыми 10 int recordsToShow = Math.Min(foundRecords.Length, 10); for (int i = 0; i < recordsToShow; i++) { int thisMfn = foundRecords[i]; // Считываем запись IrbisRecord record = client.ReadRecord(thisMfn); // Получаем основное заглавие string mainTitle = record .Fields .GetField("200") .GetSubField('a') .GetSubFieldText() .FirstOrDefault(); // Можно было просто написать: // string mainTitle = record.FM("200", 'a'); Console.WriteLine ( "MFN={0}, Main title={1}", thisMfn, mainTitle ); // Расформатируем запись Console.WriteLine ( "BRIEF: {0}", client.FormatRecord("@brief", record) ); // Создаем запись IrbisRecord newRecord = new IrbisRecord(); newRecord.AddField ( "700", 'a', "Управляемый клиент ИРБИС64" ) .AddField ( "200", 'a', string.Format("Новая Запись от {0}", DateTime.Now), 'f', "Управляемый клиент" ); // Отсылаем вновь созданную запись на сервер client.WriteRecord ( newRecord, false, true ); Console.WriteLine(new string('-', 60)); } // По выходу из using автоматически вызывается client.Disconnect () } } catch (Exception ex) { Console.WriteLine(ex); } }