A5:SQL Mk-2

開発のこと、日々のこと

Excelからコピーしたデータを貼り付ける際の挙動について

ホーム フォーラム A5:SQL Mk-2掲示板 Excelからコピーしたデータを貼り付ける際の挙動について

  • このトピックには13件の返信、1人の参加者があり、最後にKZにより1ヶ月、 4週前に更新されました。
14件の投稿を表示中 - 1 - 14件目 (全14件中)
  • 投稿者
    投稿
  • #22910 返信
    KZ
    ゲスト

    いつもお世話になっております。

    【int default 0 not null】のカラムに対し、
    Excelから空文字のデータをコピペすると、「フィールド’○○’の値が必要です」というメッセージが出ます。

    希望する挙動は、以下の通りなのですが設定等で実現可能でしょうか。
    ・空文字をコピペ・・・テーブルに空文字を反映
    ・NULLを表す文字列(« NULL »)をコピペ・・・デフォルト値が設定されているのであればデフォルト値を反映、
                         設定されていなければ« NULL »を反映

    以上、お手数をおかけしますが、よろしくお願いいたします。

    #22911 返信
    KZ
    ゲスト

    【追記】
    利用しているバージョンは2.19.2(X64 edition)[build:2024/06/23]です。

    #23016 返信
    松原正和
    キーマスター

    KZ さんこんにちは。返事が遅くなり申し訳ありません。

    DB製品は何をお使いでしょうか? 手元で試したところ、PostgreSQL, MySQLについては空の文字列を張り付けることでデフォルト値で挿入されるようでした。

    #23053 返信
    KZ
    ゲスト

    お世話になっております。
    ご確認いただきありがとうございます。
    Microsoft SQL Serverを利用しております。

    #23549 返信
    松原正和
    キーマスター

    KZさんこんにちは。
     
    お返事が遅くなり申し訳ありません。こちらの環境(Docker 版の SQL Server 2019を使用)では再現しませんでした。デフォルト値で挿入されるようでした。
     
    貼り付けを行うと、該当カラムは一見、NULLが設定されたように表示されますが、再読み込みすると実際に設定された値が表示されます。

    #23837 返信
    KZ
    ゲスト

    お世話になっております。
    お忙しいところ検証いただきありがとうございます。
    再現しなかったとのこと、承知いたしました。

    もし、Excelから貼り付ける際の挙動に関連する設定項目があれば
    ご教示いただけますと幸いです。

    #24042 返信
    松原正和
    キーマスター

    KZさんこんにちは。
     
    Excel からの貼り付けに対するオプションは現状ありません。
     
    KZさんのお使いのバージョンはいくつでしょうか?

    #24108 返信
    KZ
    ゲスト

    お世話になっております。
    Microsoft SQL Server 2019 Express Edition (15.0.2095.3) を使用しています。

    #24153 返信
    松原正和
    キーマスター

    KZさんこんにちは。
     
    すみません。A5:SQL Mk-2 のバージョンはおいくつでしょうか?

    #24225 返信
    KZ
    ゲスト

    失礼いたしました。
    2.19.2(X64 edition)[build:2024/06/23]です。

    #24641 返信
    松原正和
    キーマスター

    KZ さんこんにちは。
     
    こちらでは SQL Server 2019 に(ODBCなどを使わず)専用接続を使って試したのですが、特段何の設定をしなくとも、「« NULL »」の値を指定するとデフォルト値が入る挙動でした。
     
    空文字列を指定した場合は、データ型が文字列ですと空文字列が入りますが、int の場合は、エラーになるようでした。(空文字は入れようがないので)
     

    • この返信は2ヶ月前に松原正和が編集しました。
    #24708 返信
    KZ
    ゲスト

    お世話になっております。

    不勉強で大変恐縮ですが、以下の認識のもとで確認しております。
    3.の列定義に対してExcelから空文字のデータをコピー&ペーストした際に、
    「フィールド’○○’の値が必要です」というメッセージが表示されるのは、どのような原因が考えられるでしょうか。

    私の認識↓↓
    ●列定義が「int default 0 not null」の場合
     1.数値型のため、空文字列の指定は不可。
     2.NOT NULLの制約により、「NULL」の値も指定できない。
      →この場合、デフォルト値(0)または任意の数値を指定する必要がある。

    ●列定義が「nvarchar(max) default ” not null」の場合
     3.文字列型のため、空文字列(”)の指定は可能。
     4.NOT NULLの制約により、「NULL」の値は指定できない。

    #24962 返信
    松原正和
    キーマスター

    KZ さんこんにちは。
     
    「フィールド’○○’の値が必要です」というのは、A5:SQL Mk-2側(というか開発環境のDelphi側の仕様)で NOT NULL の項目に値が指定されなかった場合、DBに INSERT する前に事前チェックで出力するエラーです。
     
    ただし、デフォルト値が指定されている場合は、このエラーが出ないように設定しているのですが、Version 2.19系ではデータ型によってはエラーが出てしまうようです。(TIMESTAMPで試していたのですが、こちらはエラーメッセージが出なかったようですが、varcharやintだと出てしまうようです)
     
    Version 2.20系ではどのデータ型でも、デフォルト値が設定されている場合は、「フィールド’○○’の値が必要です」が出ないようになっているはずなので、こちらをお試しいただくと直るかもしれません。

    #24984 返信
    KZ
    ゲスト

    ご教示いただきありがとうございます。

    A5:SQL Mk-2 x64 Version 2.20.1 <Portable>
    を試してみましたが、
    変わらず「フィールド’○○’の値が必要です」が出てしまいました・・・

14件の投稿を表示中 - 1 - 14件目 (全14件中)
返信先: Excelからコピーしたデータを貼り付ける際の挙動について
あなたの情報:




コメントは受け付けていません。