--- ibx/trunk/runtime/IBDatabase.pas 2012/08/05 18:28:19 7 +++ ibx/trunk/runtime/IBDatabase.pas 2012/11/22 22:53:40 13 @@ -215,6 +215,7 @@ type procedure Notification( AComponent: TComponent; Operation: TOperation); override; function GetDataset(Index : longint) : TDataset; override; function GetDataSetCount : Longint; override; + procedure ReadState(Reader: TReader); override; procedure SetConnected (Value : boolean); override; public constructor Create(AOwner: TComponent); override; @@ -420,11 +421,15 @@ procedure GenerateTPB(sl: TStrings; var implementation -uses IBIntf, IBSQLMonitor, IBCustomDataSet, IBDatabaseInfo, IBSQL, IBUtils, typInfo; +uses IBIntf, IBSQLMonitor, IBCustomDataSet, IBDatabaseInfo, IBSQL, IBUtils, + typInfo; { TIBDatabase } constructor TIBDatabase.Create(AOwner: TComponent); +{$ifdef WINDOWS} +var acp: uint; +{$endif} begin inherited Create(AOwner); FIBLoaded := False; @@ -435,6 +440,19 @@ begin FTransactions := TList.Create; FDBName := ''; FDBParams := TStringList.Create; + {$ifdef UNIX} + if csDesigning in ComponentState then + FDBParams.Add('lc_ctype=UTF-8'); + {$else} + {$ifdef WINDOWS} + if csDesigning in ComponentState then + begin + acp := GetACP; + if (acp >= 1250) and (acp <= 1254) then + FDBParams.Values['lc_ctype'] := Format('WIN%d',[acp]); + end; + {$endif} + {$endif} FDBParamsChanged := True; TStringList(FDBParams).OnChange := DBParamsChange; TStringList(FDBParams).OnChanging := DBParamsChanging; @@ -1194,6 +1212,12 @@ begin Result := FDataSets.Count; end; +procedure TIBDataBase.ReadState(Reader: TReader); +begin + FDBParams.Clear; + inherited ReadState(Reader); +end; + procedure TIBDataBase.SetConnected(Value: boolean); begin if StreamedConnected and not AllowStreamedConnected then