Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / DLinq / Dlinq / SqlClient / SqlBuilder.cs / 1305376 / SqlBuilder.cs
using System; using System.Collections.Generic; using System.Diagnostics; using System.Data.SqlClient; using System.IO; using System.Linq; using System.Linq.Expressions; using System.Reflection; using System.Text; namespace System.Data.Linq.SqlClient { using System.Data.Linq.Mapping; using System.Data.Linq.Provider; using System.Diagnostics.CodeAnalysis; ////// Class for building up SQL DDL commands. /// internal static class SqlBuilder { internal static string GetCreateDatabaseCommand(string catalog, string dataFilename, string logFilename) { StringBuilder sb = new StringBuilder(); sb.AppendFormat("CREATE DATABASE {0}", SqlIdentifier.QuoteIdentifier(catalog)); if (dataFilename != null) { sb.AppendFormat(" ON PRIMARY (NAME='{0}', FILENAME='{1}')", Path.GetFileName(dataFilename), dataFilename); sb.AppendFormat(" LOG ON (NAME='{0}', FILENAME='{1}')", Path.GetFileName(logFilename), logFilename); } return sb.ToString(); } internal static string GetDropDatabaseCommand(string catalog) { StringBuilder sb = new StringBuilder(); sb.AppendFormat("DROP DATABASE {0}", SqlIdentifier.QuoteIdentifier(catalog)); return sb.ToString(); } internal static string GetCreateSchemaForTableCommand(MetaTable table) { StringBuilder sb = new StringBuilder(); Listparts = new List (SqlIdentifier.GetCompoundIdentifierParts(table.TableName)); // table names look like this in Yukon (according to MSDN): // [ database_name . [ schema_name ] . | schema_name . ] table_name // ... which means that either way, the schema name is the second to last part. if ((parts.Count) < 2) { return null; } string schema = parts[parts.Count - 2]; if (String.Compare(schema, "DBO", StringComparison.OrdinalIgnoreCase) != 0 && String.Compare(schema, "[DBO]", StringComparison.OrdinalIgnoreCase) != 0) { sb.AppendFormat("CREATE SCHEMA {0}", SqlIdentifier.QuoteIdentifier(schema)); } return sb.ToString(); } internal static string GetCreateTableCommand(MetaTable table) { StringBuilder sb = new StringBuilder(); StringBuilder decl = new StringBuilder(); BuildFieldDeclarations(table, decl); sb.AppendFormat("CREATE TABLE {0}", SqlIdentifier.QuoteCompoundIdentifier(table.TableName)); sb.Append("("); sb.Append(decl.ToString()); decl = new StringBuilder(); BuildPrimaryKey(table, decl); if (decl.Length > 0) { string name = String.Format(Globalization.CultureInfo.InvariantCulture, "PK_{0}", table.TableName); sb.Append(", "); sb.AppendLine(); sb.AppendFormat(" CONSTRAINT {0} PRIMARY KEY ({1})", SqlIdentifier.QuoteIdentifier(name), decl.ToString()); } sb.AppendLine(); sb.Append(" )"); return sb.ToString(); } internal static void BuildFieldDeclarations(MetaTable table, StringBuilder sb) { int n = 0; Dictionary
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- WindowsListViewGroup.cs
- Overlapped.cs
- EntitySqlQueryCacheEntry.cs
- SecurityValidationBehavior.cs
- HitTestResult.cs
- GridViewEditEventArgs.cs
- MediaSystem.cs
- TypeDescriptorContext.cs
- controlskin.cs
- PropertyItemInternal.cs
- SafeProcessHandle.cs
- XmlILModule.cs
- SafeNativeMethods.cs
- TargetControlTypeCache.cs
- XPathEmptyIterator.cs
- JavascriptXmlWriterWrapper.cs
- ContentPlaceHolder.cs
- BaseUriHelper.cs
- TimelineClockCollection.cs
- EntityClientCacheEntry.cs
- RequestSecurityTokenForRemoteTokenFactory.cs
- EntityDataSourceEntityTypeFilterConverter.cs
- MemberBinding.cs
- RunInstallerAttribute.cs
- BuildResult.cs
- ActivitiesCollection.cs
- CloudCollection.cs
- Attributes.cs
- FamilyMap.cs
- LongValidator.cs
- DbFunctionCommandTree.cs
- StrokeCollection2.cs
- ResolveMatchesCD1.cs
- TransactionProtocol.cs
- LayoutUtils.cs
- ToolStripRendererSwitcher.cs
- Decoder.cs
- TypedRowGenerator.cs
- CalendarButtonAutomationPeer.cs
- ScriptControlManager.cs
- SchemaTableOptionalColumn.cs
- BufferedStream.cs
- AesCryptoServiceProvider.cs
- DataGridPagerStyle.cs
- FlowDocumentPaginator.cs
- EncoderParameter.cs
- SoapClientProtocol.cs
- BamlLocalizableResource.cs
- LogEntryDeserializer.cs
- TransformDescriptor.cs
- XmlElementAttribute.cs
- ButtonBaseAdapter.cs
- OLEDB_Enum.cs
- TemplatedAdorner.cs
- CompilerGeneratedAttribute.cs
- TransformationRules.cs
- ChineseLunisolarCalendar.cs
- GradientSpreadMethodValidation.cs
- TableMethodGenerator.cs
- SpinLock.cs
- ElementAction.cs
- DataGridViewCellEventArgs.cs
- storagemappingitemcollection.viewdictionary.cs
- Annotation.cs
- CodeExpressionStatement.cs
- QfeChecker.cs
- SyndicationSerializer.cs
- SoundPlayer.cs
- Panel.cs
- BoundField.cs
- ForEachAction.cs
- OleDbStruct.cs
- WebPermission.cs
- KeyEventArgs.cs
- Input.cs
- EncoderParameter.cs
- WebPart.cs
- ValidationSettings.cs
- StringStorage.cs
- AnnouncementEndpointElement.cs
- Base64WriteStateInfo.cs
- ValidationHelper.cs
- BitmapEffectInput.cs
- LogPolicy.cs
- Decoder.cs
- BuildProviderAppliesToAttribute.cs
- UIntPtr.cs
- XmlEncoding.cs
- HostedElements.cs
- EventNotify.cs
- WmlLiteralTextAdapter.cs
- MetadataArtifactLoaderCompositeFile.cs
- TableAutomationPeer.cs
- NativeObjectSecurity.cs
- WeakReferenceList.cs
- Base64Encoder.cs
- GeneratedView.cs
- SqlTransaction.cs
- COM2PictureConverter.cs
- SendMailErrorEventArgs.cs