[Lazarus] RE : Right click, paste as string?
Marcos Douglas
md at delfire.net
Sat Apr 21 17:58:57 CEST 2012
On Sat, Apr 21, 2012 at 7:04 AM, Ludo Brands <ludo.brands at free.fr> wrote:
>> When working with e.g. multiline SQL statements, sometimes I
>> want to copy them to a string in Lazarus, e.g from something
>> like: const
>> SQL =
>> with this on the clipboard:
>> SELECT
>> c.colid as recno,
>> o.name as TableName,
>> c.name as FieldName,
>> c.colorder as FieldPosition,
>> t.name as FieldType,
>> c.scale as FieldScale,
>> c.prec as FieldPrecision,
>> c.isnullable as FieldNull
>> FROM sys.syscolumns c
>> INNER JOIN sys.sysobjects o ON c.id = o.id
>> INNER JOIN sys.systypes t ON c.xtype = t.xtype and
>> c.usertype=t.usertype WHERE (o.type='V' or o.type='U') and
>> o.name='MEDEWERKERS' ORDER BY o.name, c.colorder
>>
>> to something like:
>> Const
>> SQL =
>> 'SELECT'+
>> 'c.colid as recno,'+
>> 'o.name as TableName,'+
>> 'c.name as FieldName,'+
>> 'c.colorder as FieldPosition,'+
>> 't.name as FieldType,'+
>> 'c.scale as FieldScale,'+
>> 'c.prec as FieldPrecision,'+
>> 'c.isnullable as FieldNull'+
>> 'FROM sys.syscolumns c'+
>> 'INNER JOIN sys.sysobjects o ON c.id = o.id'+
>> 'INNER JOIN sys.systypes t ON c.xtype = t.xtype and
>> c.usertype=t.usertype'+
>> 'WHERE (o.type='V' or o.type='U') and o.name=''MEDEWERKERS'''+
>> 'ORDER BY o.name, c.colorder';
>>
>>
>> I.e. indenting, appending quotes and + sign, and escaping
>> existing quotes. (In this case, it's SQL and having an extra
>> space at the end of the line before the closing quote would
>> be even nicer but that's something of a special case)
>>
>> Is that possible in Lazarus?
>>
>
> That is roughly what the 'Editing SQL' window already does with right click/
> Create String constant. Your sample string is transformed in:
>
> SQL = 'SELECT'+sLineBreak+
> 'c.colid as recno,'+sLineBreak+
> 'o.name as TableName,'+sLineBreak+
> 'c.name as FieldName,'+sLineBreak+
> 'c.colorder as FieldPosition,'+sLineBreak+
> 't.name as FieldType,'+sLineBreak+
> 'c.scale as FieldScale,'+sLineBreak+
> 'c.prec as FieldPrecision,'+sLineBreak+
> 'c.isnullable as FieldNull'+sLineBreak+
> 'FROM sys.syscolumns c'+sLineBreak+
> 'INNER JOIN sys.sysobjects o ON c.id = o.id'+sLineBreak+
> 'INNER JOIN sys.systypes t ON c.xtype = t.xtype and c.usertype=t.usertype
> WHERE (o.type=''V'' or o.type=''U'') and o.name=''MEDEWERKERS'' ORDER BY
> o.name, c.colorder';
>
> Only the indenting is missing.
IMHO, I think this is a little better:
SQL = 'SELECT '#13
+ 'c.colid as recno, '#13
+ 'o.name as TableName, '#13
+ 'c.name as FieldName, '#13
+ 'c.colorder as FieldPosition, '#13
+ 't.name as FieldType, '#13
+ 'c.scale as FieldScale, '#13
+ 'c.prec as FieldPrecision, '#13
+ 'c.isnullable as FieldNull '#13
+ 'FROM sys.syscolumns c '#13
+ 'INNER JOIN sys.sysobjects o ON c.id = o.id '#13
+ 'INNER JOIN sys.systypes t ON c.xtype = t.xtype and
c.usertype=t.usertype '#13
+ WHERE (o.type=''V'' or o.type=''U'') and o.name=''MEDEWERKERS''
ORDER BY '#13
+ o.name, c.colorder';
Marcos Dougla
More information about the Lazarus
mailing list