選択した結果の種類に基づいて、他のデータベースにテーブルを作成する必要があります。クエリ結果は、テーブル内の実際の列にマップすることも、 fe にマップすることもできませんSelect 1, c from char_length_test
。
mysql C apiを使用してselect文の後に実際の列サイズを取得するには?
私はそのようなテーブルを作成しました:
CREATE TABLE char_length_test (c char(22))
そして、mysql_real_query
このクエリを実行するために使用します
SELECT c from char_length_test
その直後にmysql_fetch_fields
、フィールドの長さを取得するために実行しc
、create table ステートメントのように 22 になることを期待します。残念ながら、長さには 66 の値が含まれています (予想の 3 倍)。さまざまなサイズを試してみましたが、結果は同じで、長さは常に 3 倍です。
また、gdb を使用して、期待値を含む他のデータ フィールドがあるかどうかを確認します。
{
name = "c",
org_name = "c",
table = "char_length_test",
org_table = "char_length_test",
db = "database",
catalog = "def",
def = 0x0,
length = 66,
max_length = 0,
name_length = 1,
org_name_length = 1,
table_length = 16,
org_table_length = 16,
db_length = 6,
catalog_length = 3,
def_length = 0,
flags = 0,
decimals = 0,
charsetnr = 33,
type = MYSQL_TYPE_STRING,
extension = 0x0
}