From: <bvs...@us...> - 2006-10-10 00:29:26
|
Revision: 709 http://svn.sourceforge.net/instantobjects/revision/?rev=709&view=rev Author: bvsimmons Date: 2006-10-09 17:29:18 -0700 (Mon, 09 Oct 2006) Log Message: ----------- Bug:1564110 - Incorrect SQL generated for Drop Column/Index ADO-MSSQL. Modified Paths: -------------- trunk/Source/Brokers/ADO/InstantADO.pas Modified: trunk/Source/Brokers/ADO/InstantADO.pas =================================================================== --- trunk/Source/Brokers/ADO/InstantADO.pas 2006-09-22 09:34:16 UTC (rev 708) +++ trunk/Source/Brokers/ADO/InstantADO.pas 2006-10-10 00:29:18 UTC (rev 709) @@ -167,6 +167,9 @@ TInstantADOMSSQLGenerator = class(TInstantSQLGenerator) protected function InternalGenerateAlterFieldSQL(OldMetadata, NewMetadata: TInstantFieldMetadata): string; override; + function InternalGenerateDropFieldSQL(Metadata: TInstantFieldMetadata): string; override; + function InternalGenerateDropIndexSQL(Metadata: TInstantIndexMetadata): string; override; + function EmbraceIndex(const IndexName: string): string; virtual; end; TInstantADOMSSQLBroker = class(TInstantSQLBroker) @@ -1033,6 +1036,12 @@ { TInstantADOMSSQLGenerator } +function TInstantADOMSSQLGenerator.EmbraceIndex( + const IndexName: string): string; +begin + Result := InstantEmbrace(IndexName, Delimiters); +end; + function TInstantADOMSSQLGenerator.InternalGenerateAlterFieldSQL(OldMetadata, NewMetadata: TInstantFieldMetadata): string; begin @@ -1042,6 +1051,22 @@ Broker.DataTypeToColumnType(NewMetadata.DataType, NewMetadata.Size)]); end; +function TInstantADOMSSQLGenerator.InternalGenerateDropFieldSQL( + Metadata: TInstantFieldMetadata): string; +begin + Result := Format('ALTER TABLE %s DROP COLUMN %s', + [EmbraceTable(Metadata.TableMetadata.Name), + EmbraceField(Metadata.Name)]); +end; + +function TInstantADOMSSQLGenerator.InternalGenerateDropIndexSQL( + Metadata: TInstantIndexMetadata): string; +begin + Result := Format('DROP INDEX %s.%s', + [EmbraceTable(Metadata.TableMetadata.Name), + EmbraceIndex(Metadata.Name)]); +end; + { TInstantADOMSSQLBroker } class function TInstantADOMSSQLBroker.GeneratorClass: TInstantSQLGeneratorClass; |