Language | Simulang
simulationライブラリで純粋な関数式プログラミングをします
方程式的なプログラミング | 状態の手順的と関数的な表記の相互変換
VM を作った | 4Dエンジン | 連続と離散の統一
こんな日本語の文字を考案した(画像) | 人工言語
虫は宇宙人 | 人類の品種 | 言葉の起源 | DNAと門・綱・目
日本語は海豚の言葉 | ペンギン(ウルトラマン) | 猫語の「ニャー」の意味は2つ
Diablo 2 全スキル+21のチャーム | X3 TCで工場を買う方法
半光速度で宇宙旅行をする方法(超簡単です)
 1 2
SQLライブラリ (C#)
0   関東の国王      2019年1月31日 木 13:56
SQLのライブラリです。これでデータベースのアクセスが使いやすくなります。

使用例です(http://lang.x0000.netのソースコードから抜き出したものです)
object fileID = (@"select file_id from tbl_posts_cache where guid = " + new SqlParam(OdbcType.Binary, Guid.ToByteArray())).ExecS(conn);

using System;
using System.Collections.Generic;
using System.Web;
using System.Data.Odbc;
using System.Text;

public class SqlParam
{
   public OdbcType Type;
   public object Value;

   private SqlParam() { }

   public SqlParam(OdbcType type, object value)
   {
       Type = type;
       Value = value;
   }

   public static SqlCmd operator +(SqlParam a, SqlParam b)
   {
       return (SqlCmd)a + b;
   }
   
   public static SqlCmd operator +(SqlParam a, string b)
   {
       return (SqlCmd)a + b;
   }
   
   public static SqlCmd operator +(SqlParam a, char b)
   {
       return (SqlCmd)a + b;
   }

   public static SqlCmd operator +(string a, SqlParam b)
   {
       return (SqlCmd)a + b;
   }

   public static SqlCmd operator +(char a, SqlParam b)
   {
       return (SqlCmd)a + b;
   }
}

public class SqlCmd
{
   private List<object> Cmd = new List<object>();

   private SqlCmd() { }

   public static implicit operator SqlCmd(string x)
   {
       if (x == null)
           return null;

       SqlCmd ret = new SqlCmd();

       ret.Cmd.Add(x);

       return ret;
   }

   public static implicit operator SqlCmd(char x)
   {
       SqlCmd ret = new SqlCmd();

       ret.Cmd.Add(x);

       return ret;
   }

   public static implicit operator SqlCmd(SqlParam x)
   {
       if (x == null)
           return null;

       SqlCmd ret = new SqlCmd();

       ret.Cmd.Add(x);

       return ret;
   }

   public static SqlCmd operator +(SqlCmd a, SqlCmd b)
   {
       if (a == null)
           return b;

       if (b == null)
           return a;

       SqlCmd ret = new SqlCmd();

       ret.Cmd.AddRange(a.Cmd);
       ret.Cmd.AddRange(b.Cmd);

       return ret;
   }

   public OdbcCommand SetCommand(OdbcCommand cmd)
   {
       cmd.CommandText = TakakuG.For(0, Cmd.Count - 1, new StringBuilder(),
           (sum, i) =>
           {
               if (Cmd[i] is string || Cmd[i] is char) return sum.Append(Cmd[i]);
               else if (Cmd[i] is SqlParam) return sum.Append('?');
               else throw new Exception();
           }).ToString();

       cmd.Parameters.Clear();

       foreach (object i in Cmd)
           if (i is SqlParam)
               cmd.Parameters.Add("", ((SqlParam)i).Type).Value = ((SqlParam)i).Value;

       return cmd;
   }

   public void ExecNQ(OdbcConnection conn)
   {
       SetCommand(conn.CreateCommand()).ExecuteNonQuery();
   }

   public object ExecS(OdbcConnection conn)
   {
       return SetCommand(conn.CreateCommand()).ExecuteScalar();
   }

   public OdbcDataReader ExecR(OdbcConnection conn)
   {
       return SetCommand(conn.CreateCommand()).ExecuteReader();
   }
}
この記事は 2021年2月23日 火 17:59 に作者によって編集されました
1   関東の国王      2020年2月29日 土 23:10
up
2   関東の国王      2020年7月17日 金 14:45
up
3   edeylyrbbh      2020年11月2日 月 7:53
4   Products      2020年11月5日 木 8:53
5   928400617      2020年11月7日 土 2:42
6   Products      2020年11月24日 火 17:15
7   Gonadorelin      2020年11月25日 水 8:37
8   Hpgcmhpg      2020年11月25日 水 16:39
9   Flexcover      2020年12月1日 火 12:21
10   A213B71WBD      2020年12月26日 土 14:40
11   Suitcase      2021年1月2日 土 20:51
<a href="https://www.fionamargophotography.com/">高品質ディオールブレスレットコピー</a>
<a href="https://www.chinaeryu.com/suitcase/">Suitcase</a>
12   32592437901001      2021年1月7日 木 8:27
<a href="https://www.aopcctv.com/1080p-dvr/">China 1080p Dvr</a>
<a href="https://www.zhu555.com/article-a269793.html">オメガスピードマスタースーパーコピー</a>
13   070668CK      2021年1月12日 火 19:00
<a href="https://www.gspack.cn/plastic-shrink-wrap/">Plastic Shrink Wrap</a>
<a href="https://www.zhu555.com/article-a276159.html">エルメス財布コピー</a>
14   301CK1140GR      2021年1月18日 月 0:19
<a href="https://www.wc-fireproof.com/exterior-intumescent-paint/">Exterior Intumescent Paint</a>
<a href="https://www.zhu555.com/article-a280207.html">ウブロビッグバン偽物</a>
15   IW356808      2021年1月20日 水 6:02
16   121060V001N1000      2021年1月26日 火 0:41
<a href="http://www.huamingcandle.com/sex/2528/">澳门博狗</a>
<a href="https://www.zhu555.com/article-a297835.html">スーパーコピーボッテガヴェネタ</a>
17   V45CCDT      2021年2月2日 火 4:10
<a href="https://www.hanruiequipment.com/15-cfm-air-compressor/">15 Cfm Air Compressor</a>
<a href="https://www.zhu555.com/article-a302442.html">スーパーコピーフランクミュラー</a>
18   Bodytwister      2021年2月19日 金 16:20
19   関東の国王      2021年2月23日 火 17:55
up
 1 2
ヒント: 来年はがんの治療と不老不死の研究を始めます
名前      編集用パスワード(省略可)    パスワードの記憶
数式 αβγ IPA http:// 画像 B I U
(添付ファイルは http://up.x0000.net/ にアップロードしてください)