Method: XMLService::I_DB2#to_xml

Defined in:
lib/xmlservice.rb

#to_xmlObject



2430
2431
2432
2433
2434
2435
2436
2437
2438
2439
2440
2441
2442
2443
2444
2445
2446
2447
2448
2449
2450
2451
2452
2453
2454
2455
2456
2457
2458
2459
2460
2461
2462
2463
2464
2465
2466
2467
2468
2469
2470
2471
2472
2473
# File 'lib/xmlservice.rb', line 2430

def to_xml
  rows = ""
  error = " error='fast'"
  if @xml_options
    if @xml_options.has_key?(:error)
      error = " error='#{@xml_options[:error]}'"
    end
  end
  xml = "<sql>\n"
  xml << "<prepare #{error}>"
  xml << @xml_query.to_s
  xml << "</prepare>\n"
  if @xml_parms
    xml << "<execute #{error}>\n"
    if @xml_parms.is_a?(XMLService::I_Base)
      parms = @xml_parms.value
    else
      parms = @xml_parms
    end
    if parms.is_a?(Array)
      i = 0
      parms.each do |v|
        n = " var='parm#{i.to_s}'"
        xml << "<parm io='both' #{n}>#{v}</parm>\n"
        i += 1
      end
    elsif parms.is_a?(Hash)
      parms.each do |a,v|
        n = " var='#{a}'"
        xml << "<parm io='both' #{n}>#{v}</parm>\n"
      end
    else
      n = " var='parm0'"
      v = parms
      xml << "<parm io='both' #{n}>#{v}</parm>\n"
    end
    xml << "</execute>\n"
  else
    xml << "<execute #{error}/>\n"
  end
  xml << "<fetch block='all' desc='on' #{error}/>\n"
  xml << "</sql>\n"
  xml
end