Как извлечь данные из мемо-поля FoxPro с помощью .NET? - PullRequest
1 голос
/ 16 апреля 2009

Я пишу программу на C # для перевода базы данных FoxPro в датируемые данные, все работает, за исключением того, что поле memo пустое или какой-то странный символ. Я использую C # .Net 2.0. Я попробовал код, опубликованный Jonathan Demarks от 12 января. Я могу получить индекс, но я не знаю, как использовать этот индекс для извлечения данных из файла заметки.

Пожалуйста, помоги мне.

Спасибо Мадху

Ответы [ 2 ]

1 голос
/ 25 июня 2009

Я создал приведенную ниже функцию, которая преобразует объект, возвращаемый выбором, в массив байтов.

private byte[] ObjectToByteArray(Object obj)
{
    if (obj == null)
    {
        return null;
    }

    BinaryFormatter bf = new BinaryFormatter();
    MemoryStream ms = new MemoryStream();
    bf.Serialize(ms, obj);
    return ms.ToArray();
}

Затем вы можете отобразить значение.

byte [] dBytes = ConvertObjectToByteArray(dr["profile"]);
System.Text.ASCIIEncoding enc = new System.Text.ASCIIEncoding();
string str = enc.GetString(dBytes);

Теперь у вас есть значение в собственной строке C # и вы можете делать с ним все, что хотите.

0 голосов
/ 16 апреля 2009

Вы пытались использовать FoxPro OLEDB провайдера ? Если база данных не использует функции, представленные VFP8 или 9 (в частности, события базы данных), вы также можете использовать драйвер ODBC.

Содержат ли эти общие поля документы или изображения, текстовые заметки или двоичные заметки? Какой код вы используете для извлечения данных?

...