Register Register Member Login Member Login Member Login Forgot Password ??
PHP , ASP , ASP.NET, VB.NET, C#, Java , jQuery , Android , iOS , Windows Phone
 

Registered : 109,037

HOME > .NET Framework > Forum > [vb6] ผมใช้ ODBC เชื่อมต่อ MySQL 5.5 ไม่สามารถ select ข้อความที่เป็นภาษาไทยได้ครับช่วยดูให้ที่



 

[vb6] ผมใช้ ODBC เชื่อมต่อ MySQL 5.5 ไม่สามารถ select ข้อความที่เป็นภาษาไทยได้ครับช่วยดูให้ที่

 



Topic : 079235



โพสกระทู้ ( 322 )
บทความ ( 1 )



สถานะออฟไลน์




ผมใช้

windows 7 32bit

MySQL 5.5 || CHARACTER SET tis620

[font=Verdana]MySQL connector 5.1.11[/font]

และผมก็ เขียน connect

Code (VBScript)
Public Function CNNDB() As Boolean
On Error Resume Next

    DoEvents
    Set cnn = New ADODB.Connection
    If cnn.State = 1 Then cnn.Close
    cnn.ConnectionString = "DSN=q7;"
    cnn.CommandTimeout = 100
    cnn.CursorLocation = adUseClient
    cnn.Open

    If cnn.State = adStateOpen Then
        cnn.Execute ("SET CHARACTER SET tis620;")
        cnn.Execute ("SET collation_connection = tis620_thai_ci;")
        CNNDB = True
    Else
        CNNDB = False
    End If
End Function



และผมก็ลอง select ข้อมูลโดย where ภาษาไทย

Code (VBScript)
a="ลาดพร้าว"
sql="select * from table where='"& A &"' "
set rs= cnn.Execute(sql)



ผลออกมาค่าไม่มีค่าคืนหาไม่เจอ แต่เอาไปหาในพวก GUI เช่น mysql-font หาเจอครับ

[font=Verdana]แต่พอผมใช้ MySQL Connector 3.51 สามารถใช้ได้หาเจอครับ[/font]

แต่หัวหน้า อยากให้ใช้ของใหม่นะครับ ตัว 5.1.11



Tag : .NET, Win (Windows App)







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2012-06-01 10:11:05 By : tongspy View : 4774 Reply : 14
 

 

No. 1



โพสกระทู้ ( 74,058 )
บทความ ( 838 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Twitter Facebook

ไม่ลองใช้ UTF-8 ดูครับ






แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-06-01 10:18:29 By : mr.win
 


 

No. 2



โพสกระทู้ ( 74,058 )
บทความ ( 838 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Twitter Facebook

หรือไม่ใช้ Connection แบบนี้ครับ

Code
mysqldb = "driver={MySQL ODBC 3.51 Driver}; server=" & databaseserver & ";port=" & databaseport & ";database=" & databasename & ";uid=" & databaseusername & ";password=" & databasepassword & ";option=3;charset=" & databasecharset & ";stmt=set names 'utf8';"

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-06-01 10:20:16 By : mr.win
 

 

No. 3



โพสกระทู้ ( 322 )
บทความ ( 1 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 1 เขียนโดย : mr.win เมื่อวันที่ 2012-06-01 10:18:29
รายละเอียดของการตอบ ::
ตรงไหนหรอครับ คุณ วิน ถ้า MySQL ที่ทำงานเค้ากำหนดต้องเป็น tis620 เท่านั้น

ส่วนตัว ที่พอ ต่อ ODBC แล้วให้ set แบบนี้เพราะ เวลาดึงภาษาไทยออกจาก DB มันจะเป็นไทยครับ
ลองปรับเป็น UTF8 แล้วออกมาเป็น "เธเธณ"
cnn.Execute ("SET CHARACTER SET tis620;")
cnn.Execute ("SET collation_connection = tis620_thai_ci;")

จริงๆผมก็ลองเปลี่ยนเพราะ select ดูแล้วนะครับก็หาไม่เจออยุ่ดี



ประวัติการแก้ไข
2012-06-01 10:28:57
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-06-01 10:23:34 By : tongspy
 


 

No. 4



โพสกระทู้ ( 322 )
บทความ ( 1 )



สถานะออฟไลน์


mysqldb = "driver={MySQL ODBC 3.51 Driver}; server=" & databaseserver & ";port=" & databaseport & ";database=" & databasename & ";uid=" & databaseusername & ";password=" & databasepassword & ";option=3;charset=" & databasecharset & ";stmt=set names 'utf8';"


ของคุณ วินใช้ 3.51 ตัวนี้ไม่มีปัญหาครับ ผมลองดูเป็นเฉพาะ 5.1 ขึ้นนะครับที่ where ภาษาไทยไม่เจอ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-06-01 10:25:54 By : tongspy
 


 

No. 5



โพสกระทู้ ( 74,058 )
บทความ ( 838 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Twitter Facebook

ลองแก้ไขที่ my.ini ดูครับ มันมีกำหนดพวก collation ได้ครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-06-01 11:19:52 By : mr.win
 


 

No. 6



โพสกระทู้ ( 322 )
บทความ ( 1 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 5 เขียนโดย : mr.win เมื่อวันที่ 2012-06-01 11:19:52
รายละเอียดของการตอบ ::
ลองเปิด C:\MySQL\MySQL SERVER 5.5\my.ini
ไม่เห็นมีกำหนด collation เลยครับ กด ctrl+F แล้วพิม collation หาไม่เจออะครับ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-06-01 11:34:00 By : tongspy
 


 

No. 7



โพสกระทู้ ( 74,058 )
บทความ ( 838 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Twitter Facebook

ของผมมันอยู่ที่นี่

Code
C:\AppServ\MySQL\my.ini


my.ini
# MySQL Server Instance Configuration File
# ----------------------------------------------------------------------
# Generated by the MySQL Server Instance Configuration Wizard
#
#
# Installation Instructions
# ----------------------------------------------------------------------
#
# On Linux you can copy this file to /etc/my.cnf to set global options,
# mysql-data-dir/my.cnf to set server-specific options
# (@localstatedir@ for this installation) or to
# ~/.my.cnf to set user-specific options.
#
# On Windows you should keep this file in the installation directory
# of your server (e.g. C:\Program Files\MySQL\MySQL Server X.Y). To
# make sure the server reads the config file use the startup option
# "--defaults-file".
#
# To run run the server from the command line, execute this in a
# command line shell, e.g.
# mysqld --defaults-file="C:\Program Files\MySQL\MySQL Server X.Y\my.ini"
#
# To install the server as a Windows service manually, execute this in a
# command line shell, e.g.
# mysqld --install MySQLXY --defaults-file="C:\Program Files\MySQL\MySQL Server X.Y\my.ini"
#
# And then execute this in a command line shell to start the server, e.g.
# net start MySQLXY
#
#
# Guildlines for editing this file
# ----------------------------------------------------------------------
#
# In this file, you can use all long options that the program supports.
# If you want to know the options a program supports, start the program
# with the "--help" option.
#
# More detailed information about the individual options can also be
# found in the manual.
#
#
# CLIENT SECTION
# ----------------------------------------------------------------------
#
# The following options will be read by MySQL client applications.
# Note that only client applications shipped by MySQL are guaranteed
# to read this section. If you want your own MySQL client program to
# honor these values, you need to specify it as an option during the
# MySQL client library initialization.
#
[client]

port=3306

[mysql]

default-character-set = utf8

# SERVER SECTION
# ----------------------------------------------------------------------
#
# The following options will be read by the MySQL Server. Make sure that
# you have installed the server correctly (see above) so it reads this
# file.
#
[mysqld]

# The TCP/IP Port the MySQL Server will listen on
port=3306

#Path to installation directory. All paths are usually resolved relative to this.
basedir="D:\AppServ/MySQL"

#Path to the database root
datadir="D:\AppServ/MySQL/data/"

# The default character set that will be used when a new schema or table is
# created and no character set is defined
default-character-set = utf8
character-set-server = utf8
collation-server = utf8_general_ci
init_connect = 'SET collation_connection = utf8_general_ci'
init_connect = 'SET NAMES utf8'

# The default storage engine that will be used when create new tables when
#default-storage-engine=INNODB

# Set the SQL mode to strict
# sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
sql-mode="NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"

# The maximum amount of concurrent sessions the MySQL server will
# allow. One of these connections will be reserved for a user with
# SUPER privileges to allow the administrator to login even if the
# connection limit has been reached.
max_connections=60000

#
# For compatibility to other PHP MySQL function that still use old mysql connect.
#
#old_passwords = 1

# Query cache is used to cache SELECT results and later return them
# without actual executing the same query once again. Having the query
# cache enabled may result in significant speed improvements, if your
# have a lot of identical queries and rarely changing tables. See the
# "Qcache_lowmem_prunes" status variable to check if the current value
# is high enough for your load.
# Note: In case your tables change very often or if your queries are
# textually different every time, the query cache may result in a
# slowdown instead of a performance improvement.
query_cache_size=0

# The number of open tables for all threads. Increasing this value
# increases the number of file descriptors that mysqld requires.
# Therefore you have to make sure to set the amount of open files
# allowed to at least 4096 in the variable "open-files-limit" in
# section [mysqld_safe]
table_cache=5000

# Maximum size for internal (in-memory) temporary tables. If a table
# grows larger than this value, it is automatically converted to disk
# based table This limitation is for a single table. There can be many
# of them.
tmp_table_size=100M


# How many threads we should keep in a cache for reuse. When a client
# disconnects, the client's threads are put in the cache if there aren't
# more than thread_cache_size threads from before. This greatly reduces
# the amount of thread creations needed if you have a lot of new
# connections. (Normally this doesn't give a notable performance
# improvement if you have a good thread implementation.)
thread_cache_size=80

#*** MyISAM Specific options

# The maximum size of the temporary file MySQL is allowed to use while
# recreating the index (during REPAIR, ALTER TABLE or LOAD DATA INFILE.
# If the file-size would be bigger than this, the index will be created
# through the key cache (which is slower).
myisam_max_sort_file_size=100G

# If the temporary file used for fast index creation would be bigger
# than using the key cache by the amount specified here, then prefer the
# key cache method. This is mainly used to force long character keys in
# large tables to use the slower key cache method to create the index.
myisam_max_extra_sort_file_size=100G

# If the temporary file used for fast index creation would be bigger
# than using the key cache by the amount specified here, then prefer the
# key cache method. This is mainly used to force long character keys in
# large tables to use the slower key cache method to create the index.
myisam_sort_buffer_size=17M

# Size of the Key Buffer, used to cache index blocks for MyISAM tables.
# Do not set it larger than 30% of your available memory, as some memory
# is also required by the OS to cache rows. Even if you're not using
# MyISAM tables, you should still set it to 8-64M as it will also be
# used for internal temporary disk tables.
key_buffer_size=100M

# Size of the buffer used for doing full table scans of MyISAM tables.
# Allocated per thread, if a full scan is needed.
read_buffer_size=64K
read_rnd_buffer_size=256K

# This buffer is allocated when MySQL needs to rebuild the index in
# REPAIR, OPTIMZE, ALTER table statements as well as in LOAD DATA INFILE
# into an empty table. It is allocated per thread so be careful with
# large settings.
sort_buffer_size=256K

log-slow-queries=mysql-slow.log
log-error=mysql.err

#*** INNODB Specific options ***


# Use this option if you have a MySQL server with InnoDB support enabled
# but you do not plan to use it. This will save memory and disk space
# and speed up some things.


# Additional memory pool that is used by InnoDB to store metadata
# information. If InnoDB requires more memory for this purpose it will
# start to allocate it from the OS. As this is fast enough on most
# recent operating systems, you normally do not need to change this
# value. SHOW INNODB STATUS will display the current amount used.
innodb_additional_mem_pool_size=2M

# If set to 1, InnoDB will flush (fsync) the transaction logs to the
# disk at each commit, which offers full ACID behavior. If you are
# willing to compromise this safety, and you are running small
# transactions, you may set this to 0 or 2 to reduce disk I/O to the
# logs. Value 0 means that the log is only written to the log file and
# the log file flushed to disk approximately once per second. Value 2
# means the log is written to the log file at each commit, but the log
# file is only flushed to disk approximately once per second.
innodb_flush_log_at_trx_commit=1

# The size of the buffer InnoDB uses for buffering log data. As soon as
# it is full, InnoDB will have to flush it to disk. As it is flushed
# once per second anyway, it does not make sense to have it very large
# (even with long transactions).
innodb_log_buffer_size=1M

# InnoDB, unlike MyISAM, uses a buffer pool to cache both indexes and
# row data. The bigger you set this the less disk I/O is needed to
# access data in tables. On a dedicated database server you may set this
# parameter up to 80% of the machine physical memory size. Do not set it
# too large, though, because competition of the physical memory may
# cause paging in the operating system. Note that on 32bit systems you
# might be limited to 2-3.5G of user level memory per process, so do not
# set it too high.
innodb_buffer_pool_size=17M

# Size of each log file in a log group. You should set the combined size
# of log files to about 25%-100% of your buffer pool size to avoid
# unneeded buffer pool flush activity on log file overwrite. However,
# note that a larger logfile size will increase the time needed for the
# recovery process.
innodb_log_file_size=10M

# Number of threads allowed inside the InnoDB kernel. The optimal value
# depends highly on the application, hardware as well as the OS
# scheduler properties. A too high value may lead to thread thrashing.
innodb_thread_concurrency=8
max_allowed_packet = 1000000000


เปลี่ยนพวกนี้ให้เป็น tis-620 (เปลี่ยนเสร็จคุณไม่ต้องไปกำหนด Charset ที่โปรแกรมเลยครับ เพราะค่า default เป็นไปตามนี้)
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-06-01 11:37:05 By : mr.win
 


 

No. 8



โพสกระทู้ ( 322 )
บทความ ( 1 )



สถานะออฟไลน์


มันเป็น tis620 อยุ่แล้วนะครับ

[mysql]

default-character-set=tis620


# SERVER SECTION
# ----------------------------------------------------------------------
#
# The following options will be read by the MySQL Server. Make sure that
# you have installed the server correctly (see above) so it reads this
# file.
#
[mysqld]

federated

# The TCP/IP Port the MySQL Server will listen on
port=3306


#Path to installation directory. All paths are usually resolved relative to this.
basedir="C:/Program Files/MySQL/MySQL Server 5.5/"

#Path to the database root
datadir="C:/Documents and Settings/All Users/Application Data/MySQL/MySQL Server 5.5/Data/"

# The default character set that will be used when a new schema or table is
# created and no character set is defined
character-set-server=tis620

# The default storage engine that will be used when create new tables when
default-storage-engine=INNODB


ประวัติการแก้ไข
2012-06-01 12:43:32
2012-06-01 12:57:28
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-06-01 12:42:48 By : tongspy
 


 

No. 9



โพสกระทู้ ( 74,058 )
บทความ ( 838 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Twitter Facebook

ตัวที่ไม่มีลองเพิ่มเข้าไปด้วยครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-06-01 13:09:22 By : mr.win
 


 

No. 10



โพสกระทู้ ( 322 )
บทความ ( 1 )



สถานะออฟไลน์


error 1067

ไม่ได้นะครับเหมือมันเป้น config ของ 5.5จะไม่เหมือนตัวเก่าครับ


ปล. ผมเลยเทสจากเครื่อง windows 7 ultimate แล้วใช้ได้ปกติครับโดย
comment 2 บรรทัดนี้ออก
cnn.Execute ("SET CHARACTER SET tis620;")
cnn.Execute ("SET collation_connection = tis620_thai_ci;")

แต่ตัวที่ต้องใช้มันเป็น windows 7 starter จะมีปัญหา การดึงภาษาไทยมาแสดง ครับ ออกมาเป็น "เธเธณ"

การเซ็ทภาษาของตัว windows เองลองตรวจสอบแล้ว เหมือนกันทั้งคู่


ประวัติการแก้ไข
2012-06-01 13:59:47
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-06-01 13:57:30 By : tongspy
 


 

No. 11



โพสกระทู้ ( 74,058 )
บทความ ( 838 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Twitter Facebook

ผมใช้วิธีปรับเพิ่มบางตัวครับ เพราะในแต่ล่ะ version จะไม่ค่อยเหมือนกัน
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-06-01 14:32:05 By : mr.win
 


 

No. 12



โพสกระทู้ ( 322 )
บทความ ( 1 )



สถานะออฟไลน์


สงสัยต้องกลับไปใช้ตัว MySQL connector 3.51 แล้วละครับไม่รู้จะแก้ยังไง

ขอบคุณทที่ค่อยตอบคำถามครับ คุณวิน
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-06-01 16:41:05 By : tongspy
 


 

No. 13



โพสกระทู้ ( 74,058 )
บทความ ( 838 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Twitter Facebook

บางคำถามผมก็ได้แค่แนะนำครับ เพราะยังไม่เคยลองกับตัวเองจริง ๆ จัง ๆ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-06-01 17:10:00 By : mr.win
 


 

No. 14



โพสกระทู้ ( 10 )
บทความ ( 0 )



สถานะออฟไลน์


Code (C#)
using MySql.Data.MySqlClient;

//อันตรงClassเลย ที่เริ่มclass อะครับ
//charset=tis620 สำคัญนะครับ
 public static MySqlConnection con = new MySqlConnection("host=localhost;port = 3306;user=admin;password=admin;database=DBname;pooling=false;charset=tis620;connection timeout=5;");.


// อันนี้ใน Method นะครับ
MySqlDataAdapter da = new MySqlDataAdapter(sql, con);
DataTable DS = new DataTable();
da.Fill(DS, "info");
//วิธีการนึง
DS.Tables["info"].Rows[0].ItemArray.GetValue(0).ToString();


ลองดูนะครับ ผมเขียน VB ไม่เป็นลองเอาไปดูละกันครับ


ประวัติการแก้ไข
2012-06-05 17:23:58
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-06-05 17:21:13 By : kkcc
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : [vb6] ผมใช้ ODBC เชื่อมต่อ MySQL 5.5 ไม่สามารถ select ข้อความที่เป็นภาษาไทยได้ครับช่วยดูให้ที่
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ FTP| ใส่แถวของตาราง ใส่คอลัมน์ตาราง| ตัวยก ตัวห้อย ตัวพิมพ์ดีด| ใส่โค้ด ใส่การอ้างถึงคำพูด| ใส่ลีสต์
smiley for :lol: smiley for :ken: smiley for :D smiley for :) smiley for ;) smiley for :eek: smiley for :geek: smiley for :roll: smiley for :erm: smiley for :cool: smiley for :blank: smiley for :idea: smiley for :ehh: smiley for :aargh: smiley for :evil:
Insert PHP Code
Insert ASP Code
Insert VB.NET Code Insert C#.NET Code Insert JavaScript Code Insert C#.NET Code
Insert Java Code
Insert Android Code
Insert Objective-C Code
Insert XML Code
Insert SQL Code
Insert Code
เพื่อความเรียบร้อยของข้อความ ควรจัดรูปแบบให้พอดีกับขนาดของหน้าจอ เพื่อง่ายต่อการอ่านและสบายตา และตรวจสอบภาษาไทยให้ถูกต้อง

อัพโหลดแทรกรูปภาพ

Notice

เพื่อความปลอดภัยของเว็บบอร์ด ไม่อนุญาติให้แทรก แท็ก [img]....[/img] โดยการอัพโหลดไฟล์รูปจากที่อื่น เช่นเว็บไซต์ ฟรีอัพโหลดต่าง ๆ
อัพโหลดแทรกรูปภาพ ให้ใช้บริการอัพโหลดไฟล์ของไทยครีเอท และตัดรูปภาพให้พอดีกับสกรีน เพื่อความโหลดเร็วและไฟล์ไม่ถูกลบทิ้ง

   
  เพื่อความปลอดภัยและการตรวจสอบ กระทู้ที่แทรกไฟล์อัพโหลดไฟล์จากที่อื่น อาจจะถูกลบทิ้ง
 
โดย
อีเมล์
บวกค่าให้ถูก
<= ตัวเลขฮินดูอารบิก เช่น 123 (หรือล็อกอินเข้าระบบสมาชิกเพื่อไม่ต้องกรอก)







Exchange: นำเข้าสินค้าจากจีน, Taobao, เฟอร์นิเจอร์, ของพรีเมี่ยม, ร่ม, ปากกา, power bank, แฟลชไดร์ฟ, กระบอกน้ำ

Load balance : Server 01
ThaiCreate.Com Logo
© www.ThaiCreate.Com. 2003-2024 All Rights Reserved.
ไทยครีเอทบริการ จัดทำดูแลแก้ไข Web Application ทุกรูปแบบ (PHP, .Net Application, VB.Net, C#)
[Conditions Privacy Statement] ติดต่อโฆษณา 081-987-6107 อัตราราคา คลิกที่นี่