digraph "bcp_init"
{
 // 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="bcp_init",height=0.2,width=0.4,color="gray40", fillcolor="grey60", style="filled", fontcolor="black",tooltip="Prepare for bulk copy operation on a table."];
  Node1 -> Node2 [id="edge1_Node000001_Node000002",color="steelblue1",style="solid",tooltip=" "];
  Node2 [id="Node000002",label="_bcp_free_storage",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00566.html#gaa134c1c3ccc4326e693adb8357272f1d",tooltip=" "];
  Node2 -> Node3 [id="edge2_Node000002_Node000003",color="steelblue1",style="solid",tooltip=" "];
  Node3 [id="Node000003",label="_bcp_free_columns",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00566.html#gacf69ac4cbe8e3c3e6ea665e31e5e85b8",tooltip=" "];
  Node1 -> Node4 [id="edge3_Node000001_Node000004",color="steelblue1",style="solid",tooltip=" "];
  Node4 [id="Node000004",label="dbperror",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00569.html#ga302a4ce6559b81808e3be51615cd1b67",tooltip="Call client-installed error handler."];
  Node4 -> Node5 [id="edge4_Node000004_Node000005",color="steelblue1",style="solid",tooltip=" "];
  Node5 [id="Node000005",label="tds_dstr_cstr",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00581.html#gac536f0e4d77d3cff5702719362ec1766",tooltip="Returns a C version (NUL terminated string) of dstr."];
  Node4 -> Node6 [id="edge5_Node000004_Node000006",color="steelblue1",style="solid",tooltip=" "];
  Node6 [id="Node000006",label="tds_dstr_isempty",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00581.html#ga197c6af67f2e7469d06c2aa055917b1e",tooltip="test if string is empty"];
  Node1 -> Node7 [id="edge6_Node000001_Node000007",color="steelblue1",style="solid",tooltip=" "];
  Node7 [id="Node000007",label="tds_bcp_init",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00251.html#ac6610c72bd31bad5378f760fa9b12d66",tooltip="Initialize BCP information."];
  Node7 -> Node8 [id="edge7_Node000007_Node000008",color="steelblue1",style="solid",tooltip=" "];
  Node8 [id="Node000008",label="tds_bcp_row_free",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00251.html#a7c4f2b050cd1a747604aa305d6877de7",tooltip="Free row data allocated in the result set."];
  Node7 -> Node5 [id="edge8_Node000007_Node000005",color="steelblue1",style="solid",tooltip=" "];
  Node7 -> Node9 [id="edge9_Node000007_Node000009",color="steelblue1",style="solid",tooltip=" "];
  Node9 [id="Node000009",label="tds_dstr_dup",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00581.html#ga4e6d9fa6f9b9551a5a3390e10a5322e6",tooltip="Duplicate a string from another dynamic string."];
  Node9 -> Node10 [id="edge10_Node000009_Node000010",color="steelblue1",style="solid",tooltip=" "];
  Node10 [id="Node000010",label="tds_dstr_copyn",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00581.html#ga656718f240d7403f986ae887d84a6ca1",tooltip="Set string to a given buffer of characters."];
  Node7 -> Node11 [id="edge11_Node000007_Node000011",color="steelblue1",style="solid",tooltip=" "];
  Node11 [id="Node000011",label="tds_process_tokens",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00580.html#gabfc9de1d1fe718818caf63a4be4035a6",tooltip="process all streams."];
  Node11 -> Node12 [id="edge12_Node000011_Node000012",color="steelblue1",style="solid",tooltip=" "];
  Node12 [id="Node000012",label="tds5_process_dyn_result2",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00580.html#gae688b515631141acfbc41bbb91c8b921",tooltip="Process new TDS 5.0 token for describing output parameters."];
  Node12 -> Node5 [id="edge13_Node000012_Node000005",color="steelblue1",style="solid",tooltip=" "];
  Node12 -> Node36 [id="edge14_Node000012_Node000036",color="steelblue1",style="solid",tooltip=" "];
  Node36 [id="Node000036",label="tds_get_byte",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00579.html#ga0cb72d3f6943795c39db1fa692be0a58",tooltip="Return a single byte from the input buffer."];
  Node11 -> Node39 [id="edge15_Node000011_Node000039",color="steelblue1",style="solid",tooltip=" "];
  Node39 [id="Node000039",label="tds5_process_result",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00580.html#ga547b2f48659f77a69aa802d861ac827d",tooltip="tds5_process_result() is the TDS 5.0 result set processing routine."];
  Node39 -> Node36 [id="edge16_Node000039_Node000036",color="steelblue1",style="solid",tooltip=" "];
  Node11 -> Node42 [id="edge17_Node000011_Node000042",color="steelblue1",style="solid",tooltip=" "];
  Node42 [id="Node000042",label="tds5_process_result2",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00580.html#gabe2bdd5a41ce067cb31aef18ff81cb1c",tooltip="tds5_process_result2() is the new TDS 5.0 result set processing routine."];
  Node42 -> Node5 [id="edge18_Node000042_Node000005",color="steelblue1",style="solid",tooltip=" "];
  Node42 -> Node9 [id="edge19_Node000042_Node000009",color="steelblue1",style="solid",tooltip=" "];
  Node42 -> Node6 [id="edge20_Node000042_Node000006",color="steelblue1",style="solid",tooltip=" "];
  Node42 -> Node36 [id="edge21_Node000042_Node000036",color="steelblue1",style="solid",tooltip=" "];
  Node11 -> Node43 [id="edge22_Node000011_Node000043",color="steelblue1",style="solid",tooltip=" "];
  Node43 [id="Node000043",label="tds7_process_compute\l_result",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00580.html#ga6728e344caa20aea1def85f58dea138b",tooltip="tds7_process_compute_result() processes compute result sets for TDS 7/8."];
  Node43 -> Node45 [id="edge23_Node000043_Node000045",color="steelblue1",style="solid",tooltip=" "];
  Node45 [id="Node000045",label="tds_dstr_copy",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00581.html#gad96366d9fa93bfc283cef1299fbe97ab",tooltip="copy a string from another"];
  Node45 -> Node10 [id="edge24_Node000045_Node000010",color="steelblue1",style="solid",tooltip=" "];
  Node43 -> Node6 [id="edge25_Node000043_Node000006",color="steelblue1",style="solid",tooltip=" "];
  Node43 -> Node36 [id="edge26_Node000043_Node000036",color="steelblue1",style="solid",tooltip=" "];
  Node11 -> Node47 [id="edge27_Node000011_Node000047",color="steelblue1",style="solid",tooltip=" "];
  Node47 [id="Node000047",label="tds7_process_result",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00580.html#gaca56fc22d65a24a96d1bef310ade73aa",tooltip="tds7_process_result() is the TDS 7.0 result set processing routine."];
  Node47 -> Node5 [id="edge28_Node000047_Node000005",color="steelblue1",style="solid",tooltip=" "];
  Node11 -> Node26 [id="edge29_Node000011_Node000026",color="steelblue1",style="solid",tooltip=" "];
  Node26 [id="Node000026",label="tds_close_socket",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00579.html#ga3e3f76009fce5ceedb2f42bb2c9aed2e",tooltip="Close current socket."];
  Node11 -> Node36 [id="edge30_Node000011_Node000036",color="steelblue1",style="solid",tooltip=" "];
  Node11 -> Node48 [id="edge31_Node000011_Node000048",color="steelblue1",style="solid",tooltip=" "];
  Node48 [id="Node000048",label="tds_peek",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00579.html#ga221e98a9c8be96ec6c8547891e1b53af",tooltip="Reads a byte from the TDS stream without removing it."];
  Node48 -> Node36 [id="edge32_Node000048_Node000036",color="steelblue1",style="solid",tooltip=" "];
  Node11 -> Node49 [id="edge33_Node000011_Node000049",color="steelblue1",style="solid",tooltip=" "];
  Node49 [id="Node000049",label="tds_process_col_fmt",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00580.html#ga4e3dd9d3614f5f0433b78b761dd68741",tooltip="tds_process_col_fmt() is the other half of result set processing under TDS 4.2."];
  Node11 -> Node50 [id="edge34_Node000011_Node000050",color="steelblue1",style="solid",tooltip=" "];
  Node50 [id="Node000050",label="tds_process_col_name",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00580.html#ga905d2fa5e1b602817bd16bb0fcf9eadb",tooltip="tds_process_col_name() is one half of the result set under TDS 4.2 it contains all the column names,..."];
  Node50 -> Node45 [id="edge35_Node000050_Node000045",color="steelblue1",style="solid",tooltip=" "];
  Node11 -> Node54 [id="edge36_Node000011_Node000054",color="steelblue1",style="solid",tooltip=" "];
  Node54 [id="Node000054",label="tds_process_compute",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00580.html#ga6fcb37d5addebdc1af9f34ebc59fd7a8",tooltip="tds_process_compute() processes compute rows and places them in the row buffer."];
  Node11 -> Node55 [id="edge37_Node000011_Node000055",color="steelblue1",style="solid",tooltip=" "];
  Node55 [id="Node000055",label="tds_process_compute\l_names",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00580.html#gae5b3e01f3d665f9e377de091f46f1ab9",tooltip="tds_process_compute_names() processes compute result sets."];
  Node55 -> Node45 [id="edge38_Node000055_Node000045",color="steelblue1",style="solid",tooltip=" "];
  Node11 -> Node56 [id="edge39_Node000011_Node000056",color="steelblue1",style="solid",tooltip=" "];
  Node56 [id="Node000056",label="tds_process_compute\l_result",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00580.html#gae3368ea80d0d8b13791ceb13ee5f19c9",tooltip="tds_process_compute_result() processes compute result sets."];
  Node56 -> Node45 [id="edge40_Node000056_Node000045",color="steelblue1",style="solid",tooltip=" "];
  Node56 -> Node6 [id="edge41_Node000056_Node000006",color="steelblue1",style="solid",tooltip=" "];
  Node56 -> Node36 [id="edge42_Node000056_Node000036",color="steelblue1",style="solid",tooltip=" "];
  Node11 -> Node57 [id="edge43_Node000011_Node000057",color="steelblue1",style="solid",tooltip=" "];
  Node57 [id="Node000057",label="tds_process_cursor\l_tokens",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00580.html#ga315d875d90c64d12d61fc9e33b4dee96",tooltip="Reads cursor command results."];
  Node57 -> Node36 [id="edge44_Node000057_Node000036",color="steelblue1",style="solid",tooltip=" "];
  Node11 -> Node58 [id="edge45_Node000011_Node000058",color="steelblue1",style="solid",tooltip=" "];
  Node58 [id="Node000058",label="tds_process_default\l_tokens",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00580.html#ga39453d084f3f780ac4602d4abf2839f7",tooltip="tds_process_default_tokens() is a catch all function that is called to process tokens not known to ot..."];
  Node58 -> Node12 [id="edge46_Node000058_Node000012",color="steelblue1",style="solid",tooltip=" "];
  Node58 -> Node39 [id="edge47_Node000058_Node000039",color="steelblue1",style="solid",tooltip=" "];
  Node58 -> Node42 [id="edge48_Node000058_Node000042",color="steelblue1",style="solid",tooltip=" "];
  Node58 -> Node47 [id="edge49_Node000058_Node000047",color="steelblue1",style="solid",tooltip=" "];
  Node58 -> Node26 [id="edge50_Node000058_Node000026",color="steelblue1",style="solid",tooltip=" "];
  Node58 -> Node36 [id="edge51_Node000058_Node000036",color="steelblue1",style="solid",tooltip=" "];
  Node58 -> Node48 [id="edge52_Node000058_Node000048",color="steelblue1",style="solid",tooltip=" "];
  Node58 -> Node49 [id="edge53_Node000058_Node000049",color="steelblue1",style="solid",tooltip=" "];
  Node58 -> Node50 [id="edge54_Node000058_Node000050",color="steelblue1",style="solid",tooltip=" "];
  Node58 -> Node57 [id="edge55_Node000058_Node000057",color="steelblue1",style="solid",tooltip=" "];
  Node58 -> Node62 [id="edge56_Node000058_Node000062",color="steelblue1",style="solid",tooltip=" "];
  Node62 [id="Node000062",label="tds_process_dyn_result",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00580.html#ga416cf119c1d4a0fca27dc5b50c261358",tooltip="Process results from dynamic."];
  Node62 -> Node36 [id="edge57_Node000062_Node000036",color="steelblue1",style="solid",tooltip=" "];
  Node58 -> Node63 [id="edge58_Node000058_Node000063",color="steelblue1",style="solid",tooltip=" "];
  Node63 [id="Node000063",label="tds_process_end",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00580.html#ga7a081cf9bb8f04ead12f0299fb7c4cd9",tooltip="tds_process_end() processes any of the DONE, DONEPROC, or DONEINPROC tokens."];
  Node58 -> Node86 [id="edge59_Node000058_Node000086",color="steelblue1",style="solid",tooltip=" "];
  Node86 [id="Node000086",label="tds_process_info",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00580.html#ga65a2316369529731732f200c190d05d6",tooltip="tds_process_info() is called for INFO, ERR, or EED tokens and is responsible for calling the CLI's me..."];
  Node86 -> Node5 [id="edge60_Node000086_Node000005",color="steelblue1",style="solid",tooltip=" "];
  Node86 -> Node36 [id="edge61_Node000086_Node000036",color="steelblue1",style="solid",tooltip=" "];
  Node86 -> Node58 [id="edge62_Node000086_Node000058",color="steelblue1",style="solid",tooltip=" "];
  Node86 -> Node87 [id="edge63_Node000086_Node000087",color="steelblue1",style="solid",tooltip=" "];
  Node87 [id="Node000087",label="tds_unget_byte",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00579.html#gad70d59fb317d098b0c9fd29dd77131a8",tooltip="Unget will always work as long as you don't call it twice in a row."];
  Node58 -> Node88 [id="edge64_Node000058_Node000088",color="steelblue1",style="solid",tooltip=" "];
  Node88 [id="Node000088",label="tds_process_nbcrow",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00580.html#gaf7264c9eb3aa7a73358a4c65f02d3d3c",tooltip="tds_process_nbcrow() processes rows and places them in the row buffer."];
  Node58 -> Node89 [id="edge65_Node000058_Node000089",color="steelblue1",style="solid",tooltip=" "];
  Node89 [id="Node000089",label="tds_process_param_result\l_tokens",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00580.html#ga9fdef8228d29cab7fa9098f07fa73fba",tooltip="Process parameters from networks."];
  Node89 -> Node36 [id="edge66_Node000089_Node000036",color="steelblue1",style="solid",tooltip=" "];
  Node89 -> Node90 [id="edge67_Node000089_Node000090",color="steelblue1",style="solid",tooltip=" "];
  Node90 [id="Node000090",label="tds_process_param_result",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00580.html#gacb3354443bcefe7a500a500a4904cc05",tooltip="process output parameters of a stored procedure."];
  Node90 -> Node5 [id="edge68_Node000090_Node000005",color="steelblue1",style="solid",tooltip=" "];
  Node90 -> Node6 [id="edge69_Node000090_Node000006",color="steelblue1",style="solid",tooltip=" "];
  Node89 -> Node87 [id="edge70_Node000089_Node000087",color="steelblue1",style="solid",tooltip=" "];
  Node58 -> Node94 [id="edge71_Node000058_Node000094",color="steelblue1",style="solid",tooltip=" "];
  Node94 [id="Node000094",label="tds_process_params\l_result_token",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00580.html#ga7b18c0911a9dc69939577b39eb64725d",tooltip="tds_process_params_result_token() processes params on TDS5."];
  Node58 -> Node95 [id="edge72_Node000058_Node000095",color="steelblue1",style="solid",tooltip=" "];
  Node95 [id="Node000095",label="tds_process_row",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00580.html#gaad814dd6e35aee8332035d06dc8b5d65",tooltip="tds_process_row() processes rows and places them in the row buffer."];
  Node58 -> Node96 [id="edge73_Node000058_Node000096",color="steelblue1",style="solid",tooltip=" "];
  Node96 [id="Node000096",label="tds_process_tabname",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00580.html#gaeec59bca9bd0c5388e245f0d19d9c81a",tooltip="Process list of table from network."];
  Node96 -> Node36 [id="edge74_Node000096_Node000036",color="steelblue1",style="solid",tooltip=" "];
  Node96 -> Node87 [id="edge75_Node000096_Node000087",color="steelblue1",style="solid",tooltip=" "];
  Node58 -> Node100 [id="edge76_Node000058_Node000100",color="steelblue1",style="solid",tooltip=" "];
  Node100 [id="Node000100",label="tds_token_name",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00580.html#ga7f24a7af985cd320788122e98072b7af",tooltip="Returns string representation for a given token type."];
  Node58 -> Node87 [id="edge77_Node000058_Node000087",color="steelblue1",style="solid",tooltip=" "];
  Node11 -> Node62 [id="edge78_Node000011_Node000062",color="steelblue1",style="solid",tooltip=" "];
  Node11 -> Node101 [id="edge79_Node000011_Node000101",color="steelblue1",style="solid",tooltip=" "];
  Node101 [id="Node000101",label="tds_process_dynamic",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00580.html#ga5cfc0340d8d717e67f60037e029b2142",tooltip="tds_process_dynamic() finds the element of the dyns array for the id"];
  Node101 -> Node36 [id="edge80_Node000101_Node000036",color="steelblue1",style="solid",tooltip=" "];
  Node11 -> Node63 [id="edge81_Node000011_Node000063",color="steelblue1",style="solid",tooltip=" "];
  Node11 -> Node86 [id="edge82_Node000011_Node000086",color="steelblue1",style="solid",tooltip=" "];
  Node11 -> Node88 [id="edge83_Node000011_Node000088",color="steelblue1",style="solid",tooltip=" "];
  Node11 -> Node90 [id="edge84_Node000011_Node000090",color="steelblue1",style="solid",tooltip=" "];
  Node11 -> Node89 [id="edge85_Node000011_Node000089",color="steelblue1",style="solid",tooltip=" "];
  Node11 -> Node94 [id="edge86_Node000011_Node000094",color="steelblue1",style="solid",tooltip=" "];
  Node11 -> Node95 [id="edge87_Node000011_Node000095",color="steelblue1",style="solid",tooltip=" "];
  Node11 -> Node96 [id="edge88_Node000011_Node000096",color="steelblue1",style="solid",tooltip=" "];
  Node11 -> Node80 [id="edge89_Node000011_Node000080",color="steelblue1",style="solid",tooltip=" "];
  Node80 [id="Node000080",label="tds_set_cur_dyn",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00578.html#gae8b7db85af16701fc0604eb117cbd4e4",tooltip="Set current dynamic."];
  Node11 -> Node100 [id="edge90_Node000011_Node000100",color="steelblue1",style="solid",tooltip=" "];
  Node11 -> Node87 [id="edge91_Node000011_Node000087",color="steelblue1",style="solid",tooltip=" "];
  Node7 -> Node103 [id="edge92_Node000007_Node000103",color="steelblue1",style="solid",tooltip=" "];
  Node103 [id="Node000103",label="tds_submit_queryf",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00578.html#gad695defcbf663b0023851a198206a772",tooltip="Format and submit a query."];
  Node103 -> Node104 [id="edge93_Node000103_Node000104",color="steelblue1",style="solid",tooltip=" "];
  Node104 [id="Node000104",label="tds_submit_query",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00578.html#ga5a29ae7f99d089dc3cea85ec6ee5f3ab",tooltip="Sends a language string to the database server for processing."];
  Node1 -> Node45 [id="edge94_Node000001_Node000045",color="steelblue1",style="solid",tooltip=" "];
}
