147

SQLクエリをそのクエリの抽象表現に解析するparseQueryという関数があります。

クエリの抽象表現を取り、SQL クエリ文字列を返す関数を作成しようとしています。

2 番目の関数は何と呼ぶべきですか?

4

33 に答える 33

200

あなたが望む動詞は「compose」だと思います。

于 2008-09-29T14:19:46.987 に答える
78

parseの反対はserializeです

于 2008-10-02T15:44:37.227 に答える
32

コンパイラ用語では、反対は「解析解除」です。具体的には、解析はトークンのストリームを抽象構文ツリーに変換し、逆解析は抽象構文ツリーをトークンのストリームに変換します。

于 2008-12-27T08:18:34.817 に答える
31

作曲?クエリを解析するときは、それを構成要素 (トークンなど) に分割します。その逆は、パーツを文字列クエリに構成することです。

于 2008-09-29T14:21:20.417 に答える
21

既存の命名を補完するために、composeQueryが最適に見えます。

しかし、一般的なケースでは、解析の反対はǝsɹɐdです

于 2012-03-08T22:01:35.567 に答える
20

私はこれらのいずれかを使用します:

  • ToString()
  • ToSQL()
  • 与える()
于 2008-09-29T14:28:22.223 に答える
17

「シリアル化」はおそらくあなたが望む言葉だ​​と思います。これは、プログラムからエクスポート (およびインポート) できるデータのテキスト表現を生成することを意味します。

于 2008-09-29T14:25:45.320 に答える
15

「分析」の対義語は「合成」です。

于 2008-09-29T14:20:14.897 に答える
13

ToQueryString()

于 2008-09-29T14:19:34.600 に答える
12

間違いなくレンダリングします。

于 2008-10-15T14:18:29.980 に答える
10

私はそれをconstructQueryと呼びます。

于 2008-09-29T14:19:32.837 に答える
10

おそらく、生成または放出します。

于 2008-09-29T14:19:58.297 に答える
10

いくつかのものを追加するだけです。

確かに解析は双方向の言葉です。

要約をクエリに解析できます。

クエリを要約に解析できます。

問題は、メソッドの後半部分に何と名前を付けるかということです。この例では、abstract を解析してクエリを作成しているため、それを と呼びますparseAbstract

質問に答えるために、解析には反対はありません。

于 2008-09-29T15:56:06.273 に答える
9

おそらく、generateQuery?createQuery?

于 2008-09-29T14:19:30.560 に答える
8

好きなのを選びな

  • 生成
  • ごみ
  • シリアライズ
  • 放出する

それぞれ微妙に異なる意味合いを持っています。

于 2012-03-14T20:43:56.183 に答える
7

クラスとそれに関連する演算子の性質に応じて、compose、construct、generate、render、condense、reduce、toSQL、toString

于 2008-09-29T16:21:02.797 に答える
7

多分かなりPrintQuery

于 2008-09-29T14:19:55.457 に答える
6

従来のコンパイラには、パーサーとコード ジェネレーターの 2 つの部分があります。

したがって、「生成」と呼ぶことができます。もちろん、コンパイラはソース コードを記述していないため、ここでは少し異なります。(プリコンパイラでない限り)。

于 2008-09-29T17:17:22.613 に答える
5

おそらくFormat()。またはあなたのインスタンスでToSQL()?

于 2008-09-29T14:19:31.120 に答える
5

unParse()? 冗談ですが、toQueryString() を使用します

于 2008-09-29T14:20:18.437 に答える
4

解析して...ではなく、シリアル化して逆シリアル化すると言います。

于 2008-09-29T19:29:37.257 に答える
4

通常、それらをチェーンネストできるため、ToString()に行きます(反対の関数で、Class1からClass2に、またはその逆に渡すことができます)

DateTime.Parse( DateTime.Parse( myDate.ToString() ).ToString() );

Serialize() は良い選択のように見えますが、Deserialize() にはすでに反対の機能があります。

あなたの特定のシナリオでは、他の人が指摘したように、 ToSql() も別の良い選択です。

于 2009-10-20T19:02:01.753 に答える
4

平らにする?

解析されたクエリ オブジェクトは、おそらく条件階層を表しており、これを「フラット化」して 1 次元の文字列に戻しています。

しかし、オブジェクトから文字列に移行する場合、実際には toString や toSQL() などを使用するだけです。さらに、適切に設計し、適切なアプリを使用している場合は、後で名前を変更して、コメントに何かを貼り付けることができます.

于 2008-09-29T15:00:01.447 に答える
4

レンダリングを使用します

> a = 'html': { 'head': {'title': 'My Page'}, 'body': { 'h1': 'Hello World', 'p': 'This is a Paragraph' } }

> b = render(a)

> console.log(b)

<html>
    <head>
        <title>My Page</title>
    </head>
    <body>
        <h1>Hello World</h1>
        <p>This is a Paragraph</p>
    </body>
</html>

私見ですが、parse() の反対です。

> c = parse(b)

{ 'html': {
    'head': {
        'title': 'My Page'
    }
    'body': {
        'h1': 'Hello World',
        'p': 'This is a Paragraph'
    }
}
于 2012-03-11T15:57:42.727 に答える
3

asSQL() またはさらに asQuery() についてはどうですか?

于 2011-05-27T15:20:55.003 に答える
3

INHO シリアル化、合成は適切なオプションです。また、あなたがparseQueryと名付けたように、私はcodeQueryを使います

于 2012-05-10T04:44:21.720 に答える
3

生成には+1しますが、生成しているもの、つまりGenerateSQL()に追加します

于 2008-09-29T18:06:30.280 に答える
3

私は「作成」に投票しましたが、それが気に入らない場合は「ビルド」もお勧めします

于 2008-09-29T19:22:39.550 に答える
2

デパース

Deparse は、次のように解析することです。

  • 逆コンパイルはコンパイルすることです
  • 分解は構成することです
  • デシリアライズはシリアライズすること
  • degroovy は groovy です :) ;)

解析/逆解析は構造の変更ではなく、変換です。すべての関係と構造を維持しながら、同等のテキストと抽象構文ツリー形式の間で正確な変換を行います。

「構成」は構造の変更を意味するため、正確ではありません。別々の独立した部分から組み合わせることを示唆しています (通常は初めて)。「分解」が独立した部分に分割することを示唆しているように。形式だけでなく、形も変化します。

クイック検索では、用語が使用されている範囲が次のように表示されます。

于 2013-11-01T00:28:54.657 に答える
0

.GetSqlQuery()私の選択だろう

于 2011-04-15T03:00:22.397 に答える
0

writeQuery. 解析は、文字列からそれを読み取り、オブジェクト (「実際の」としましょう) 表現を作成する行為です。反対は、オブジェクトを文字列に書き込むことです。

于 2008-09-29T19:19:02.273 に答える
-6

あなたが探している答えは次のとおりだと思います:「そもそも SQL を解析したり、SQL をアセンブルしたりしないでください。オブジェクト/リレーショナル マッパーを使用し、かなり長い間解決されてきた問題を解決して雇用主のお金を浪費するのをやめてください。 "

于 2009-10-20T20:46:33.053 に答える