private string GetSqlReturnType() { if (_functiondef.TableDefinition.IsEmpty()) { return(QueryGeneratorHelper.GetSqlType(_info.ReturnType, _schema)); } return(" TABLE ( \r\n" + _functiondef.TableDefinition + "\r\n)"); }
public override string GetCreateScript() { var assemblyname = "[" + _type.Assembly.GetName().Name + "]"; var name = _schema + "." + GetObjectName(); var args = GetArguments(_type.GetMethod("Accumulate")); var rettype = QueryGeneratorHelper.GetSqlType(_type.GetMethod("Terminate").ReturnType, _schema); var classname = GetClassFullName(); const string pattern = @" --SQLINSTALL: CREATE AGGREGATE {0} ({3}.{4}) CREATE AGGREGATE {0} ({1}) RETURNS {2} EXTERNAL NAME {3}.{4}"; return(string.Format(pattern, name, args, rettype, assemblyname, classname)); }
/// <summary> /// </summary> /// <returns> </returns> protected string GetArguments(MethodInfo method = null) { var args = new List <string>(); foreach (var parameterInfo in (method ?? _info).GetParameters()) { var type = QueryGeneratorHelper.GetSqlType(parameterInfo.ParameterType, _schema); var def = " = null"; if (type.Contains("max") || type == "xml" || type == "geography" || type == "geometry") { def = ""; } args.Add(string.Format("@{0} {1}{2}", parameterInfo.Name, type, def)); } return(string.Join(",", args.ToArray())); }