digraph "tds_submit_execdirect"
{
 // LATEX_PDF_SIZE
  bgcolor="transparent";
  edge [fontname=Helvetica,fontsize=10,labelfontname=Helvetica,labelfontsize=10];
  node [fontname=Helvetica,fontsize=10,shape=box,height=0.2,width=0.4];
  rankdir="LR";
  Node1 [id="Node000001",label="tds_submit_execdirect",height=0.2,width=0.4,color="gray40", fillcolor="grey60", style="filled", fontcolor="black",tooltip="Submit a prepared query with parameters."];
  Node1 -> Node2 [id="edge1_Node000001_Node000002",color="steelblue1",style="solid",tooltip=" "];
  Node2 [id="Node000002",label="tds5_put_params",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00593.html#ga4f1f0a4f77bc4ea1440dfdebc19a157c",tooltip="Send parameters to server."];
  Node2 -> Node3 [id="edge2_Node000002_Node000003",color="steelblue1",style="solid",tooltip=" "];
  Node3 [id="Node000003",label="tds_freeze_abort",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00594.html#ga7274d9c5dc75c58bb7d1f1c29e03a73e",tooltip="Discard all data written after the freeze."];
  Node2 -> Node4 [id="edge3_Node000002_Node000004",color="steelblue1",style="solid",tooltip=" "];
  Node4 [id="Node000004",label="tds_freeze_close",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00594.html#ga633f62fb8e5310abfa42c02fba9c6500",tooltip="Stop keeping data for this specific freeze."];
  Node4 -> Node5 [id="edge4_Node000004_Node000005",color="steelblue1",style="solid",tooltip=" "];
  Node5 [id="Node000005",label="tds_freeze_close_len",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00594.html#ga2660b893ae2bf36fe1b63b354e748bad",tooltip="Stop keeping data for this specific freeze."];
  Node4 -> Node6 [id="edge5_Node000004_Node000006",color="steelblue1",style="solid",tooltip=" "];
  Node6 [id="Node000006",label="tds_freeze_written",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00594.html#ga1daa50429a3a5b045ee503581e859a8b",tooltip="Compute how many bytes has been written from freeze."];
  Node2 -> Node6 [id="edge6_Node000002_Node000006",color="steelblue1",style="solid",tooltip=" "];
  Node2 -> Node7 [id="edge7_Node000002_Node000007",color="steelblue1",style="solid",tooltip=" "];
  Node7 [id="Node000007",label="tds_put_data",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00593.html#ga9fcc0a3932dcad530511395ef8a767fb",tooltip="Write data to wire."];
  Node2 -> Node8 [id="edge8_Node000002_Node000008",color="steelblue1",style="solid",tooltip=" "];
  Node8 [id="Node000008",label="tds_put_data_info",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00593.html#gafd74652c4722ddce4d642cc4209449d4",tooltip="Put data information to wire."];
  Node8 -> Node9 [id="edge9_Node000008_Node000009",color="steelblue1",style="solid",tooltip=" "];
  Node9 [id="Node000009",label="tds_dstr_cstr",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00596.html#gac536f0e4d77d3cff5702719362ec1766",tooltip="Returns a C version (NUL terminated string) of dstr."];
  Node8 -> Node10 [id="edge10_Node000008_Node000010",color="steelblue1",style="solid",tooltip=" "];
  Node10 [id="Node000010",label="tds_dstr_len",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00596.html#ga396f139e4f886ac1b224a735138e73dd",tooltip="Returns the length of the string in bytes."];
  Node8 -> Node11 [id="edge11_Node000008_Node000011",color="steelblue1",style="solid",tooltip=" "];
  Node11 [id="Node000011",label="tds_put_string",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00594.html#ga1fcaf8d488cc1390f106ce3ad0bf37b4",tooltip="Output a string to wire automatic translate string to unicode if needed."];
  Node1 -> Node20 [id="edge12_Node000001_Node000020",color="steelblue1",style="solid",tooltip=" "];
  Node20 [id="Node000020",label="tds7_put_query_params",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00593.html#ga6e42b4a1d1d3898229ea2fe4afc2ecec",tooltip="Output params types and query (required by sp_prepare/sp_executesql/sp_prepexec)"];
  Node20 -> Node21 [id="edge13_Node000020_Node000021",color="steelblue1",style="solid",tooltip=" "];
  Node21 [id="Node000021",label="tds_count_placeholders\l_ucs2le",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00593.html#ga0cd19215e9169ea299a6c9cbf5b2fb60",tooltip="Count the number of placeholders ('?') in a query."];
  Node21 -> Node22 [id="edge14_Node000021_Node000022",color="steelblue1",style="solid",tooltip=" "];
  Node22 [id="Node000022",label="tds_next_placeholder\l_ucs2le",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00593.html#gaaa97f8535a2babe642024a0744d271d5",tooltip="Found the next placeholder (? or @param) in a string."];
  Node20 -> Node22 [id="edge15_Node000020_Node000022",color="steelblue1",style="solid",tooltip=" "];
  Node20 -> Node11 [id="edge16_Node000020_Node000011",color="steelblue1",style="solid",tooltip=" "];
  Node1 -> Node25 [id="edge17_Node000001_Node000025",color="steelblue1",style="solid",tooltip=" "];
  Node25 [id="Node000025",label="tds7_write_param_def\l_from_query",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00593.html#ga24345856c16b15aa3e84459c2f551320",tooltip="Write string with parameters definition, useful for TDS7+."];
  Node25 -> Node21 [id="edge18_Node000025_Node000021",color="steelblue1",style="solid",tooltip=" "];
  Node25 -> Node3 [id="edge19_Node000025_Node000003",color="steelblue1",style="solid",tooltip=" "];
  Node25 -> Node5 [id="edge20_Node000025_Node000005",color="steelblue1",style="solid",tooltip=" "];
  Node25 -> Node6 [id="edge21_Node000025_Node000006",color="steelblue1",style="solid",tooltip=" "];
  Node25 -> Node26 [id="edge22_Node000025_Node000026",color="steelblue1",style="solid",tooltip=" "];
  Node26 [id="Node000026",label="tds_get_column_declaration",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00593.html#ga50d62edeb2a432e2dc668263f3f958ff",tooltip="Return declaration for column (like \"varchar(20)\")."];
  Node26 -> Node27 [id="edge23_Node000026_Node000027",color="steelblue1",style="solid",tooltip=" "];
  Node27 [id="Node000027",label="tds_fix_column_size",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00593.html#ga79e31bdb1d8e8e214ea2bed964ff0e77",tooltip="Get column size for wire."];
  Node25 -> Node11 [id="edge24_Node000025_Node000011",color="steelblue1",style="solid",tooltip=" "];
  Node1 -> Node28 [id="edge25_Node000001_Node000028",color="steelblue1",style="solid",tooltip=" "];
  Node28 [id="Node000028",label="tds_alloc_dynamic",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00592.html#ga69559de43b47f4a9e2eecc7a56527444",tooltip="Allocate a dynamic statement."];
  Node28 -> Node29 [id="edge26_Node000028_Node000029",color="steelblue1",style="solid",tooltip=" "];
  Node29 [id="Node000029",label="tds_get_dynid",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00592.html#ga93503e64091b51add0801abebe22abf4",tooltip="Get an id for dynamic query based on TDS information."];
  Node28 -> Node30 [id="edge27_Node000028_Node000030",color="steelblue1",style="solid",tooltip=" "];
  Node30 [id="Node000030",label="tds_lookup_dynamic",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00595.html#ga4a45cadd06ae1b886459dcc1f8e482c6",tooltip="Finds a dynamic given string id."];
  Node1 -> Node31 [id="edge28_Node000001_Node000031",color="steelblue1",style="solid",tooltip=" "];
  Node31 [id="Node000031",label="tds_convert_string",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00593.html#ga451c03a088d468a32c1cff9848dd2a6a",tooltip="Convert a string in an allocated buffer."];
  Node31 -> Node13 [id="edge29_Node000031_Node000013",color="steelblue1",style="solid",tooltip=" "];
  Node13 [id="Node000013",label="tds_iconv",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00591.html#ga87db49044919f1bc84c0ff5e9ab00304",tooltip="Wrapper around iconv(3)."];
  Node1 -> Node32 [id="edge30_Node000001_Node000032",color="steelblue1",style="solid",tooltip=" "];
  Node32 [id="Node000032",label="tds_flush_packet",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00594.html#ga5feb53554e8917a81bbbc332163a61fb",tooltip="Flush packet to server."];
  Node1 -> Node3 [id="edge31_Node000001_Node000003",color="steelblue1",style="solid",tooltip=" "];
  Node1 -> Node4 [id="edge32_Node000001_Node000004",color="steelblue1",style="solid",tooltip=" "];
  Node1 -> Node7 [id="edge33_Node000001_Node000007",color="steelblue1",style="solid",tooltip=" "];
  Node1 -> Node8 [id="edge34_Node000001_Node000008",color="steelblue1",style="solid",tooltip=" "];
  Node1 -> Node11 [id="edge35_Node000001_Node000011",color="steelblue1",style="solid",tooltip=" "];
  Node1 -> Node33 [id="edge36_Node000001_Node000033",color="steelblue1",style="solid",tooltip=" "];
  Node33 [id="Node000033",label="tds_query_flush_packet",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00593.html#gada27f4cfce925240ad33b71b63ca692d",tooltip="Flush query packet."];
  Node33 -> Node32 [id="edge37_Node000033_Node000032",color="steelblue1",style="solid",tooltip=" "];
  Node1 -> Node34 [id="edge38_Node000001_Node000034",color="steelblue1",style="solid",tooltip=" "];
  Node34 [id="Node000034",label="tds_release_dynamic",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00592.html#gabf2fdb0def5388508602ee7dd2f49506",tooltip="Frees dynamic statement."];
  Node34 -> Node35 [id="edge39_Node000034_Node000035",color="steelblue1",style="solid",tooltip=" "];
  Node35 [id="Node000035",label="tds_detach_results",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00592.html#ga1d60bf443e274797b1d1a9e7418ab962",tooltip="Detach result info from it current socket."];
  Node34 -> Node36 [id="edge40_Node000034_Node000036",color="steelblue1",style="solid",tooltip=" "];
  Node36 [id="Node000036",label="tds_free_input_params",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00592.html#gabdc5fee73b22345c02ab894e49ad7f95",tooltip="Frees all allocated input parameters of a dynamic statement."];
  Node1 -> Node37 [id="edge41_Node000001_Node000037",color="steelblue1",style="solid",tooltip=" "];
  Node37 [id="Node000037",label="tds_send_emulated_execute",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00593.html#ga02c6ce3ff96369603a6ee4efee64caae",tooltip="Emulate prepared execute traslating to a normal language."];
  Node37 -> Node38 [id="edge42_Node000037_Node000038",color="steelblue1",style="solid",tooltip=" "];
  Node38 [id="Node000038",label="tds_count_placeholders",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00593.html#gaaa7b4d37bf796019e72f25c6e7fe7bea",tooltip="Count the number of placeholders ('?') in a query."];
  Node38 -> Node39 [id="edge43_Node000038_Node000039",color="steelblue1",style="solid",tooltip=" "];
  Node39 [id="Node000039",label="tds_next_placeholder",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00593.html#ga8f3b00c34af2484eccb169e60a37dc36",tooltip="Get position of next placeholder."];
  Node37 -> Node39 [id="edge44_Node000037_Node000039",color="steelblue1",style="solid",tooltip=" "];
  Node37 -> Node42 [id="edge45_Node000037_Node000042",color="steelblue1",style="solid",tooltip=" "];
  Node42 [id="Node000042",label="tds_put_param_as_string",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00593.html#ga0e2e7230c425e925402d7856ff5b4b18",tooltip="Send a parameter to server."];
  Node42 -> Node43 [id="edge46_Node000042_Node000043",color="steelblue1",style="solid",tooltip=" "];
  Node43 [id="Node000043",label="tds_convert",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00590.html#gad83c146aa5ba3f1515557d6b5248494a",tooltip="tds_convert convert a type to another."];
  Node42 -> Node11 [id="edge47_Node000042_Node000011",color="steelblue1",style="solid",tooltip=" "];
  Node42 -> Node44 [id="edge48_Node000042_Node000044",color="steelblue1",style="solid",tooltip=" "];
  Node44 [id="Node000044",label="tds_quote_and_put",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00593.html#ga26b26296d060dca75f6a43e9ac41e58d",tooltip="Send a string to server while quoting it."];
  Node44 -> Node11 [id="edge49_Node000044_Node000011",color="steelblue1",style="solid",tooltip=" "];
  Node37 -> Node11 [id="edge50_Node000037_Node000011",color="steelblue1",style="solid",tooltip=" "];
  Node1 -> Node45 [id="edge51_Node000001_Node000045",color="steelblue1",style="solid",tooltip=" "];
  Node45 [id="Node000045",label="tds_start_query_head",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00593.html#ga9ad2e6defce530a8778791cce0166ccd",tooltip="Start query packet of a given type."];
  Node45 -> Node5 [id="edge52_Node000045_Node000005",color="steelblue1",style="solid",tooltip=" "];
  Node45 -> Node6 [id="edge53_Node000045_Node000006",color="steelblue1",style="solid",tooltip=" "];
  Node45 -> Node11 [id="edge54_Node000045_Node000011",color="steelblue1",style="solid",tooltip=" "];
  Node1 -> Node46 [id="edge55_Node000001_Node000046",color="steelblue1",style="solid",tooltip=" "];
  Node46 [id="Node000046",label="tds_submit_query",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00593.html#ga5a29ae7f99d089dc3cea85ec6ee5f3ab",tooltip="Sends a language string to the database server for processing."];
  Node46 -> Node47 [id="edge56_Node000046_Node000047",color="steelblue1",style="solid",tooltip=" "];
  Node47 [id="Node000047",label="tds_submit_query_params",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00593.html#ga95e0fccedc459a4404f496eec74a369a",tooltip="Sends a language string to the database server for processing."];
  Node47 -> Node48 [id="edge57_Node000047_Node000048",color="steelblue1",style="solid",tooltip=" "];
  Node48 [id="Node000048",label="tds5_fix_dot_query",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00593.html#ga8853354723094c8efcd87fabf675c64f",tooltip="Substitute ?-style placeholders with named (@param) ones."];
  Node48 -> Node39 [id="edge58_Node000048_Node000039",color="steelblue1",style="solid",tooltip=" "];
  Node47 -> Node2 [id="edge59_Node000047_Node000002",color="steelblue1",style="solid",tooltip=" "];
  Node47 -> Node20 [id="edge60_Node000047_Node000020",color="steelblue1",style="solid",tooltip=" "];
  Node47 -> Node51 [id="edge61_Node000047_Node000051",color="steelblue1",style="solid",tooltip=" "];
  Node51 [id="Node000051",label="tds7_write_param_def\l_from_params",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00593.html#ga6513afd79629f7a928e1d3da9f56dee1",tooltip="Write string with parameters definition, useful for TDS7+."];
  Node51 -> Node9 [id="edge62_Node000051_Node000009",color="steelblue1",style="solid",tooltip=" "];
  Node51 -> Node52 [id="edge63_Node000051_Node000052",color="steelblue1",style="solid",tooltip=" "];
  Node52 [id="Node000052",label="tds_dstr_isempty",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00596.html#gae38ac42415273bf467d71aef0a9729d4",tooltip="test if string is empty"];
  Node51 -> Node10 [id="edge64_Node000051_Node000010",color="steelblue1",style="solid",tooltip=" "];
  Node51 -> Node3 [id="edge65_Node000051_Node000003",color="steelblue1",style="solid",tooltip=" "];
  Node51 -> Node5 [id="edge66_Node000051_Node000005",color="steelblue1",style="solid",tooltip=" "];
  Node51 -> Node6 [id="edge67_Node000051_Node000006",color="steelblue1",style="solid",tooltip=" "];
  Node51 -> Node26 [id="edge68_Node000051_Node000026",color="steelblue1",style="solid",tooltip=" "];
  Node51 -> Node22 [id="edge69_Node000051_Node000022",color="steelblue1",style="solid",tooltip=" "];
  Node51 -> Node11 [id="edge70_Node000051_Node000011",color="steelblue1",style="solid",tooltip=" "];
  Node47 -> Node25 [id="edge71_Node000047_Node000025",color="steelblue1",style="solid",tooltip=" "];
  Node47 -> Node31 [id="edge72_Node000047_Node000031",color="steelblue1",style="solid",tooltip=" "];
  Node47 -> Node21 [id="edge73_Node000047_Node000021",color="steelblue1",style="solid",tooltip=" "];
  Node47 -> Node52 [id="edge74_Node000047_Node000052",color="steelblue1",style="solid",tooltip=" "];
  Node47 -> Node3 [id="edge75_Node000047_Node000003",color="steelblue1",style="solid",tooltip=" "];
  Node47 -> Node4 [id="edge76_Node000047_Node000004",color="steelblue1",style="solid",tooltip=" "];
  Node47 -> Node39 [id="edge77_Node000047_Node000039",color="steelblue1",style="solid",tooltip=" "];
  Node47 -> Node7 [id="edge78_Node000047_Node000007",color="steelblue1",style="solid",tooltip=" "];
  Node47 -> Node8 [id="edge79_Node000047_Node000008",color="steelblue1",style="solid",tooltip=" "];
  Node47 -> Node11 [id="edge80_Node000047_Node000011",color="steelblue1",style="solid",tooltip=" "];
  Node47 -> Node33 [id="edge81_Node000047_Node000033",color="steelblue1",style="solid",tooltip=" "];
  Node47 -> Node45 [id="edge82_Node000047_Node000045",color="steelblue1",style="solid",tooltip=" "];
}
