Соединение устанавливаю через TODBCConnection + использую стандартные TTransaction, TQuery и TDBGrid.
Проблема в том, что вместо русских букв - знаки вопроса, причем в БД использовал и varchar и nvarchar и text.
Если сталкивались с проблемой подскажите где копать?
Добавлено спустя 4 минуты 31 секунду:
Пример использовал отсюда:http://wiki.lazarus.freepascal.org/ODBCConn
- Код: Выделить всё
procedure TForm1.Button1Click(Sender: TObject);
var
S: String;
conn: TODBCConnection;
query: TSQLQuery;
transaction: TSQLTransaction;
begin
conn := TODBCCOnnection.Create(nil);
query := TSQLQuery.Create(nil);
transaction := TSQLTransaction.Create(nil);
try
try
conn.HostName := '127.0.0.1';
conn.DatabaseName := 'diary'; {replace this with the name of your database}
conn.Transaction := transaction;
conn.UserName:= 'db_username';
conn.Password:= '';
query.DataBase := conn;
{ The following line is required, else you get "could not retrieve primary key metadata".
I was really stuck on this until I found http://bugs.freepascal.org/view.php?id=13241 }
query.UsePrimaryKeyAsKey:=false;
query.SQL.Text := 'select * from diary.dbo.journal_entries';
query.Open;
S := '';
while not query.EOF do
begin
S := S + query.FieldByName('journal_entry').AsString + #13#10;
query.Next;
end;
finally
query.Free;
conn.Free;
end;
except
on E: Exception do
ShowMessage(E.message);
end;
Memo1.Text:= S;
end;
При использовании этого примера хорошо видна проблема русских букв, при условии их наличия в поле таблицы