Zeos + mssql [Решено]
Модератор: Модераторы
Zeos + mssql [Решено]
Посмотрев по форуму везде рекомендуют пользоваться Zeos. Послушался народной мудрости, тоже установил его себе
Проблема с авторизацией. Сервер mssql 7 настроен с использованием NT авторизации.
С какими параметрами нужно использовать TZConnection, чтобы авторизоваться?
Проблема с авторизацией. Сервер mssql 7 настроен с использованием NT авторизации.
С какими параметрами нужно использовать TZConnection, чтобы авторизоваться?
Последний раз редактировалось alaken 16.07.2010 16:15:49, всего редактировалось 2 раза.
Посмотрев по форуму везде рекомендуют пользоваться Zeos.
Оказалось все просто
для доменной авторизации нужно оставлять поля User,Password пустыми
вторые грабли на моем пути, это отображение русских букв, данные из базы отображаются в виде вопросов (??????? ????)
как это решить?
для доменной авторизации нужно оставлять поля User,Password пустыми
вторые грабли на моем пути, это отображение русских букв, данные из базы отображаются в виде вопросов (??????? ????)
как это решить?
может вот тут посмотреть http://www.freepascal.ru/forum/viewtopic.php?f=26&t=4948&p=35628&hilit=codepage#p35628
Для отображения в DBGrid результатов запроса ZQuery с MSSQL:
1. Копируем файлы ZAbstractRODataset.pas, ZComponent.inc, Zeos.inc в папку проекта.
В ZComponent.inc меняем {$I ../Zeos.inc} на {$I Zeos.inc}.
В ZAbstractRODataset.pas меняем
на
2. Создаем обработчик события AfterOpen ZQuery:
Без этого работать не будет, так как в Lazarus по умолчанию Transliterate = False.
3. После этого свойство ZQuery Options doOemTranslate используем для перекодировки ANSI в UTF8.
Lazarus 0.9.29 FPC 2.4.3 Win32
1. Копируем файлы ZAbstractRODataset.pas, ZComponent.inc, Zeos.inc в папку проекта.
В ZComponent.inc меняем {$I ../Zeos.inc} на {$I Zeos.inc}.
В ZAbstractRODataset.pas меняем
Код: Выделить всё
if doOemTranslate in FOptions then
begin
if ToOem then
CharToOem(Src, Dest)
else OemToChar(Src, Dest);
Dest[Result] := #0;
end
Код: Выделить всё
if doOemTranslate in FOptions then
begin
if ToOem then
s := UTF8Decode(Src)
else
s := UTF8Encode(Src);
StrCopy(Dest, PChar(s));
Result := StrLen(Dest);
Dest[Result] := #0;
end
2. Создаем обработчик события AfterOpen ZQuery:
Код: Выделить всё
var
i: integer;
begin
for i := 0 to DataSet.FieldCount - 1 do
if DataSet.Fields[i] is TStringField then
(DataSet.Fields[i] as TStringField).Transliterate := True;
end;
3. После этого свойство ZQuery Options doOemTranslate используем для перекодировки ANSI в UTF8.
Lazarus 0.9.29 FPC 2.4.3 Win32
Код: Выделить всё
if doOemTranslate in FOptions then
begin
if ToOem then
s := UTF8Decode(Src)
else
s := UTF8Encode(Src);
StrCopy(Dest, PChar(s));
Result := StrLen(Dest);
Dest[Result] := #0;
endописал как
Код: Выделить всё
var s: string;СПАСИБО.
alaken писал(а):Оказалось все просто
для доменной авторизации нужно оставлять поля User,Password пустыми
вторые грабли на моем пути, это отображение русских букв, данные из базы отображаются в виде вопросов (??????? ????)
как это решить?
Не удалось подключиться в домене с пустыми User и Password. Какую версию Zeos используете. Я использую Zeos 7.0.0 alpha.
использую версию 6.6.6
При открытии ZQuery ошибка:
Что можно сделать?
Что можно сделать?
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Это не ошибка Zeos.
Используется старая версия ntwdblib.dll не поддерживающая ntext.
Используется старая версия ntwdblib.dll не поддерживающая ntext.
Где взять новую?
Самая последняя версия из пакета SQL 2000 SP4. В более новые не входит (Microsoft отказалась от поддержки DB-Lib).
Правда я не уверен, что она тоже будет корректно работать с ntext (сам данным типом не пользуюсь). А вообще попробуйте отказаться от ntext (если возможно) или переходите на ODBC.
Добавлено спустя 57 секунд:
версия ntwdblib.dll из SQL 2000 SP 4 - 2000.80.2039.0
Правда я не уверен, что она тоже будет корректно работать с ntext (сам данным типом не пользуюсь). А вообще попробуйте отказаться от ntext (если возможно) или переходите на ODBC.
Добавлено спустя 57 секунд:
версия ntwdblib.dll из SQL 2000 SP 4 - 2000.80.2039.0
