فهرست منبع

* Modified patch from taka_jp to set the connection-dataset for mysql, bug #13588.

git-svn-id: trunk@13189 -
joost 16 سال پیش
والد
کامیت
2435a4a48f
1فایلهای تغییر یافته به همراه10 افزوده شده و 0 حذف شده
  1. 10 0
      packages/fcl-db/src/sqldb/mysql/mysqlconn.inc

+ 10 - 0
packages/fcl-db/src/sqldb/mysql/mysqlconn.inc

@@ -232,6 +232,16 @@ begin
   HMySQL:=mysql_real_connect(HMySQL,PChar(H),PChar(U),Pchar(P),Nil,APort,Nil,0);
   If (HMySQL=Nil) then
     MySQlError(Nil,SErrServerConnectFailed,Self);
+
+  // MySQL _Server_ version 4.1 and later
+  // major_version*10000 + minor_version *100 + sub_version
+  if (trim(CharSet) <> '')  and (4*10000 + 1*100 <= mysql_get_server_version(HMySQL)) then
+    begin
+    // Only available for mysql 5.0.7 and later...
+    // if (mysql_set_character_set(HMySQL, PChar(CharSet)) <> 0) then
+    if mysql_query(FMySQL,PChar('SET CHARACTER SET ''' + EscapeString(CharSet) +''''))<>0 then
+      MySQLError(HMySQL,Format(SErrExecuting,[StrPas(mysql_error(HMySQL))]),Self);
+    end;
 end;
 
 function TConnectionName.GetAsSQLText(Field : TField) : string;