how to retrieve columns in WCF with Parameterized Stored procedure

Сonversation on different topics
Post Reply
octavio
Posts: 2
Joined: Tue Feb 28, 2012 3:58 pm
Location: mexico

how to retrieve columns in WCF with Parameterized Stored procedure

Post by octavio »

Hi, i am using the trial version of stimulsoft designer for silverlight with WCF
i was trying to retrieve columns from sp with parameters and get this exception
i can see the parameters in the designer but the xml doesnt has the parameters
what i can do to solve this problem
thanks

public string RetrieveColumns(string xml)
{
StiDataColumnsCollection columns = null;
string result = string.Empty;

try
{
DatabaseBuildHelper.SettingsRetrieveColumns settingsRetrieveColumns = DatabaseBuildHelper.Input.ParseRetrieveColumns(xml);


settingsRetrieveColumns.connection.ConnectionString = settingsRetrieveColumns.ConnectionString;
StiData data = new StiData(settingsRetrieveColumns.Name, settingsRetrieveColumns.connection);


settingsRetrieveColumns.dataSource.NameInSource = settingsRetrieveColumns.NameInSource;
settingsRetrieveColumns.dataSource.Name = settingsRetrieveColumns.Name;
settingsRetrieveColumns.dataSource.Alias = settingsRetrieveColumns.Alias;
settingsRetrieveColumns.dataSource.SqlCommand = settingsRetrieveColumns.SqlCommand;


columns = settingsRetrieveColumns.adapter.GetColumnsFromData(data, settingsRetrieveColumns.dataSource); <------- Debe declarar la variable escalar"@idAlmacen".
}
finally
{
result = DatabaseBuildHelper.Output.ParseRetrieveColumns(columns);
}

return result;
}
HighAley
Posts: 8431
Joined: Wed Jun 08, 2011 7:40 am
Location: Stimulsoft Office

how to retrieve columns in WCF with Parameterized Stored procedure

Post by HighAley »

Hello.
octavio wrote:Hi, i am using the trial version of stimulsoft designer for silverlight with WCF
i was trying to retrieve columns from sp with parameters and get this exception
i can see the parameters in the designer but the xml doesnt has the parameters
what i can do to solve this problem
thanks

public string RetrieveColumns(string xml)
{
StiDataColumnsCollection columns = null;
string result = string.Empty;

try
{
DatabaseBuildHelper.SettingsRetrieveColumns settingsRetrieveColumns = DatabaseBuildHelper.Input.ParseRetrieveColumns(xml);


settingsRetrieveColumns.connection.ConnectionString = settingsRetrieveColumns.ConnectionString;
StiData data = new StiData(settingsRetrieveColumns.Name, settingsRetrieveColumns.connection);


settingsRetrieveColumns.dataSource.NameInSource = settingsRetrieveColumns.NameInSource;
settingsRetrieveColumns.dataSource.Name = settingsRetrieveColumns.Name;
settingsRetrieveColumns.dataSource.Alias = settingsRetrieveColumns.Alias;
settingsRetrieveColumns.dataSource.SqlCommand = settingsRetrieveColumns.SqlCommand;


columns = settingsRetrieveColumns.adapter.GetColumnsFromData(data, settingsRetrieveColumns.dataSource); <------- Debe declarar la variable escalar"@idAlmacen".
}
finally
{
result = DatabaseBuildHelper.Output.ParseRetrieveColumns(columns);
}

return result;
}
You could make some improvement by yourself.
Please find the StiDatabaseBuildHelper class and change there the ParseRetrieveColumns method to this:

Code: Select all

            public static string ParseRetrieveColumns(StiDataColumnsCollection columns)
            {
                if (columns == null || columns.Count == 0) return " ";

                System.IO.StringWriter str = new System.IO.StringWriter();
                XmlTextWriter writer = new XmlTextWriter(str);
                writer.WriteStartElement("Result");

                #region Columns
                writer.WriteStartElement("Columns");
                foreach (StiDataColumn column in columns)
                {
                    string columnName = CheckName(column.Name);

                    writer.WriteStartElement(columnName);
                    writer.WriteValue(column.Type.ToString());
                    writer.WriteEndElement();
                }
                writer.WriteEndElement();
                #endregion

                writer.WriteEndElement();
                string result = StiSLEncodingHelper.EncodeString(str.ToString());

                writer = null;
                str.Dispose();
                str = null;

                return result;
            }
This changes will be in our next prerelease build.

Thank you.
Post Reply