(現在 過去ログ89 を表示中)

HOME HELP 新規作成 新着記事 トピック表示 ファイル一覧 検索 過去ログ

[ 最新記事及び返信フォームをトピックトップへ ]

■13260 / inTopicNo.1)  SQLServerの主キー用連番作成
  
□投稿者/ ななーし -(2022/04/26(Tue) 16:45:30)
    こんにちわ、度々申し訳ございません。

    桐で主キーがいるため、新しく項目を作成し、自動採番で登録しようとしたところ、
    @桐のテーブルにある式での採番ができそうにない ※外部DBのため?
    ASQL側のIDENTITYによる採番は桐がエラーになる。※行追加で次の行行くと

    調べたところ別のテーブルを作成し、SQLに流し込む方法は記載がありましたが、追加時に今までの登録内容は見ながら登録したい要望があり、フォームで自動採番の案があれば教えて頂けますと幸いです。


引用返信 [メール受信/OFF] 削除キー/
■13261 / inTopicNo.2)  Re[1]: SQLServerの主キー用連番作成
□投稿者/ hidetake -(2022/04/26(Tue) 16:50:43)
引用返信 [メール受信/OFF] 削除キー/
■13262 / inTopicNo.3)  Re[2]: SQLServerの主キー用連番作成
□投稿者/ 尾形 -(2022/04/26(Tue) 17:37:50)
    どうも、こんにちは

    わたしは、連番管理用のテーブル作って
    連番も自分で管理割り付けしています


引用返信 [メール受信/OFF] 削除キー/
■13263 / inTopicNo.4)  Re[1]: SQLServerの主キー用連番作成
□投稿者/ 尾形 -(2022/04/26(Tue) 19:30:10)
    補足

    > SQL側のIDENTITYによる採番は桐がエラーになる。
    > ※行追加で次の行行くと

    上記はMySQLだとエラーにはなりませんが
    主キーの項目値を桐側が把握できないので
    行追加直後に、行訂正しようと思ってもできません

    再抽出して、桐側に主キーを教えてあげる必要があります


    そんな感じなので、自分は、主キー(連番)は
    自作でライブラリにて管理するようにしています


引用返信 [メール受信/OFF] 削除キー/
■13264 / inTopicNo.5)  Re[1]: SQLServerの主キー用連番作成
□投稿者/ 尾形 -(2022/04/26(Tue) 19:40:47)
    補足

    > 桐のテーブルにある式での採番ができそうにない ※外部DBのため?
    #直前値 関数は使えません
    けど
    コンマドボタン機能の 入力/直前値は使えます

    このあたりを使って直前値も自作する必要はあります

引用返信 [メール受信/OFF] 削除キー/
■13265 / inTopicNo.6)  Re[2]: SQLServerの主キー用連番作成
□投稿者/ ななーし -(2022/04/27(Wed) 11:54:05)
    一度目を通してはいましたが、以下の文がやはりよくわかりません。
    SET IDENTITY_INSERT [テーブル名] ON;
    SET IDENTITY_INSERT [テーブル名] OFF;
    のONOFFで行けるようなことはわかりますが、どうやって流し込むのかわからず・・・
    (無能なんでしょうね、すみません)

    シェル実行で文を書いてもエラーになりますし・・・
引用返信 [メール受信/OFF] 削除キー/
■13266 / inTopicNo.7)  Re[3]: SQLServerの主キー用連番作成
□投稿者/ ななーし -(2022/04/27(Wed) 14:09:40)
    行挿入終了前イベントで文字連結してユニークを作るって方法が簡単そうだったので
    やってみたらいけました!
    [a]+[b]+[c]+#STR(#総件数+1)で行追加ごとに1ずつ足せばユニークなのでこれでいけそうです。
    (数値型のがデータが少なそうと考えましたが、SQLなのでまあ問題ないでしょう)
    ※グループ追加やグループ検索などでレコード数を絞って記入してます。

    一応判定で条件を使って無記入時は主キーを記入しないにしておけば無記入レコード増加も防げたのでこれでいきます!
    条件([H])項目値代入 [主キー]=[a]+[b]+[c]+#STR(#総件数+1)

解決済み!
引用返信 [メール受信/OFF] 削除キー/
■13267 / inTopicNo.8)  Re[3]: SQLServerの主キー用連番作成
□投稿者/ hidetake -(2022/04/27(Wed) 14:15:54)
    > SET IDENTITY_INSERT [テーブル名] ON;
    > SET IDENTITY_INSERT [テーブル名] OFF;

    桐には「パススルー クエリ」のようなものは
    備えていないので、基本的にはできません。

    無理矢理、先のリンクにあるような無謀な技を
    つかうか、VBScript 経由で SQL を投げかける
    かしか、ありません。

    VBScript を使う方法は、次のような手法です。
    ※例はトリガを無効にする方法
    ----------------------------
    Dim obj,rs
    Set obj = Wscript.CreateObject("ADODB.Connection")
    obj.Open "DSN=dsnname; DATABASE=db; UID=sa; PWD=password;"

    SQLQuery = "ALTER TABLE [table] DISABLE TRIGGER ALL;"
    rs = obj.Execute(SQLQuery)
    Set obj = Nothing
    WScript.Quit
    ----------------------------

    SQL Server 側との連携や折り合いなど、桐だけ
    では困難なことが出てくるので、結構面倒でも
    あります。
引用返信 [メール受信/OFF] 削除キー/
■13268 / inTopicNo.9)  Re[4]: SQLServerの主キー用連番作成
□投稿者/ hidetake -(2022/04/27(Wed) 14:18:17)
    > 無理矢理、先のリンクにあるような無謀な技を
    > つかうか、VBScript 経由で SQL を投げかける
    > かしか、ありません。

    前に書いたこともあるけど、もう1つの方法は
    SQL Server 側にコマンド実行用の table を
    用意し、それに値を代入したら SQL Server の
    トリガで、その項目に記載された内容を実行させる
    と言うような方法もあるにはあります。
引用返信 [メール受信/OFF] 削除キー/
■13269 / inTopicNo.10)  Re[5]: SQLServerの主キー用連番作成
□投稿者/ ななーし -(2022/04/28(Thu) 12:53:19)
    hidetakeさん回答ありがとうございます。
    VBSによる方法ならできそうですが、VBSのシェル実行は結構タイムラグが発生する場合があり(弊社のネットワーク原因っぽいですが)結構事故りそうですね。
    基本は総件数からID作った方が楽そうですのでそのようにユニーク作ってやっていこうと思います。
引用返信 [メール受信/OFF] 削除キー/
■13270 / inTopicNo.11)  Re[4]: SQLServerの主キー用連番作成
□投稿者/ 尾形 -(2022/04/28(Thu) 18:31:09)
    桐表で重くなったとの事ですが

    どれくらいのレコード数か分かりませんが
    xvxで毎回全件読み込むのも
    かなり重たいかもしれません


引用返信 [メール受信/OFF] 削除キー/
■13271 / inTopicNo.12)  Re[5]: SQLServerの主キー用連番作成
□投稿者/ ななーし -(2022/04/30(Sat) 08:04:07)
    20万レコード程度ですね。
    1年で1万レコードくらい増えます。
    桐で新しく起こしたテーブルなら爆速で立ち上がるんですが、
    そのテーブル自体に表引きやら何やら色々連携テーブルがありすぎて重い。といった感じです。
    表引きなど連携全部切ったら爆速ですね。
    ちなみに部分的にテーブルを読み込ます場合は皆さんどうしてますか?外部テーブル作成時に絞り込み条件をいれるのでしょうか?
引用返信 [メール受信/OFF] 削除キー/
■13272 / inTopicNo.13)  Re[6]: SQLServerの主キー用連番作成
□投稿者/ 尾形 -(2022/04/30(Sat) 18:09:35)
    どうも、こんにちは

    想定されるレコード数で
    想定してある使い方でテストされる事
    おすすめかと思いクス


    > 部分的にテーブルを読み込ます
    #DSQL 関数があります

    マニュアルや過去ログを見られてください


引用返信 [メール受信/OFF] 削除キー/
■13273 / inTopicNo.14)  Re[7]: SQLServerの主キー用連番作成
□投稿者/ ななーし -(2022/05/09(Mon) 09:25:09)
    No13272に返信(尾形さんの記事)
    > どうも、こんにちは
    >
    > 想定されるレコード数で
    > 想定してある使い方でテストされる事
    > おすすめかと思いクス
    >
    >
    >>部分的にテーブルを読み込ます
    > #DSQL 関数がありま
    こんにちわ、返信遅れてすみません。
    レコード数テストは一度試して、1名なら十分な速度が得られるのは確認してます。
    複数名テストもどこかでしてみようと思います。

    #DSQL 関数についても調べてみます。ありがとうございました。
解決済み!
引用返信 [メール受信/OFF] 削除キー/



トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

Mode/  Pass/

HOME HELP 新規作成 新着記事 トピック表示 ファイル一覧 検索 過去ログ

- Child Tree -
- Antispam Version -