Page 1 of 1

SOLVED: Multiline statement

Posted: Thursday 9th September 2021 1:35pm
by CMWhitley
Love Gambas and it is working very well. I have some long SQL type statements, and my limited mind cannot figure out the best way to accomplish it without just multiple lines of SQLString = SQLString & xyz
SQLString = SQLString & abc
SQLString = SQLString & edf....

I tried the VB method of an Underscore following by the next line beginning with an & but that did not work. With all the ' ", ' " required to insert variables I am unsure as to how to elegantly split these up over multiple lines.

Thanks in advance for any help.

Re: Multiline statement

Posted: Thursday 9th September 2021 2:06pm
by BruceSteers
CMWhitley wrote: Thursday 9th September 2021 1:35pm Love Gambas and it is working very well. I have some long SQL type statements, and my limited mind cannot figure out the best way to accomplish it without just multiple lines of SQLString = SQLString & xyz
SQLString = SQLString & abc
SQLString = SQLString & edf....

I tried the VB method of an Underscore following by the next line beginning with an & but that did not work. With all the ' ", ' " required to insert variables I am unsure as to how to elegantly split these up over multiple lines.

Thanks in advance for any help.
There are these ways...
SQLString &= "More text"
SQLString &= "Even More text"
or these methods will work as multiline...
SQLString = "some text\n" &
                    "some more text\n" &
                   "yet some more"
you can even omit the &
Ie.
SQLString = "some text\n"
                    "some more text\n"
                   "yet some more"
Will work

Similar for commands/arrays using the comma ,
Ie..
MyCommand(arg1,
arg2,
arg3)

MyArray[Item1,
Item2,
Item3]

But note you will get problems with blank lines and positioning of ) ]

Ie.
Message.Question(
"My question"
)

that will fail.

Message.Question(
"My question")

will work

MyArray = [
Item1,
Item2
]
Will work

MyArray = [
Item1,

Item2
]
will fail


also when using multiline methods the IDE will loose the autocomplete ability when typing.

Re: Multiline statement

Posted: Thursday 9th September 2021 2:09pm
by thatbruce
CMWhitley wrote: Thursday 9th September 2021 1:35pm Love Gambas and it is working very well. I have some long SQL type statements, and my limited mind cannot figure out the best way to accomplish it without just multiple lines of SQLString = SQLString & xyz
SQLString = SQLString & abc
SQLString = SQLString & edf...

I tried the VB method of an Underscore following by the next line beginning with an & but that did not work. With all the ' ", ' " required to insert variables I am unsure as to how to elegantly split these up over multiple lines.
OK unthink that idea immediately. Its like trying to replace chocolate syrup with a sardine in a milkshake.

I was sure that there is a page in the wiki about multi-line string constants but I can't see it. So,

In the IDE (or more specifically in the source code for a class) a string can be continued on the next line simply by making it like this:

Code: Select all

Dim sMary as "Mary had a little lamb, "
"So what, I hear you ask " 
"I had a little omelet"
Which is pretty easy, the string sMary is the theoretical "concatenation" of what looks like three strings. It's not, it's actually one string.

Now here is the bad news
You need to see the spaces!
If you try "SELECT *"
"FROM myStupidTable;"

You will get "SELECT *FROM myStupidTable"
which aint gunna work.

Re: Multiline statement

Posted: Thursday 9th September 2021 5:42pm
by CMWhitley
Thank you gentleman! Those tips are exactly what I needed to make for a cleaner code.
Take care.

Re: SOLVED: Multiline statement

Posted: Thursday 9th September 2021 7:44pm
by thatbruce
I forgot to mention!

If you build your queries in an external tool, say something like dBeaver, you can copy your query and then in the IDE do a paste special (Shift + Ctl + V). In the popup there is an option down the bottom to paste "as multi-line string".

b

Re: SOLVED: Multiline statement

Posted: Thursday 9th September 2021 9:34pm
by CMWhitley
thatbruce wrote: Thursday 9th September 2021 7:44pm I forgot to mention!

If you build your queries in an external tool, say something like dBeaver, you can copy your query and then in the IDE do a paste special (Shift + Ctl + V). In the popup there is an option down the bottom to paste "as multi-line string".

b
Now that's something worth remembering. Thank you!