投稿

11月, 2024の投稿を表示しています

Delphi12 の複数行文字列がフォーマッタにより破壊される

Delphi12 で導入された複数行を書ける文字列を含むソースにフォーマッタ(Ctrl + D)を適用すると、文字列が破壊されてしまう フォーマッタ前 S := ''' INSERT INTO table_name (user_name) VALUES (:user_name); '''; フォーマッタ後 S := ''' INSERT INTO table_name(user_name)VALUES(: user_name); '''; 改行が詰められ、コロンの後にスペースが挿入されてしまう等 (何故か先頭行の改行はCRのみになる) SQLインジェクション回避のため、VALUEをコロンで始まるパラメータ指定している場合、意味が変わってしまうので注意(変数宣言の : スペースが適用される) フォーマッタの定義を変更するか(他で思うようにフォーマットされない可能性) "+" 演算子でつなぐしかない様子

sqlite3 で更新時に更新日時、削除時に連鎖削除のトリガー

sqlite3 で更新時に更新日時、削除時に連鎖削除のトリガーをメモ ▼更新時に updated_at へローカル時刻を保存 CREATE TRIGGER トリガー名 AFTER UPDATE ON 対象テーブル BEGIN UPDATE 対象テーブル SET updated_at = DATETIME('now', 'localtime') WHERE rowid == NEW.rowid; END ▼親テーブルのレコード削除時に、親idを持つレコードを連鎖削除 CREATE TRIGGER トリガー名 AFTER DELETE ON 親テーブル FOR EACH ROW BEGIN DELETE FROM 対象テーブル WHERE 連結フィールド = OLD.id; END