We've seen this before (and I did it 2 decades ago): REPLACE MyTable.MyField with SomeOtherTable.SomeField
The implication is that "replace the MyField value in the MyTable table." But if one doesn't use the IN clause, will there ever be any chance that the update to MyTable.MyField would fail?
tia, --Mike
--- This email has been checked for viruses by Avast antivirus software. https://www.avast.com/antivirus
Yes, it fails if you are at EOF in the currently selected table, if I recall correctly.
Frank.
Frank Cazabon
On 02/10/2019 02:14 PM, MB Software Solutions, LLC wrote:
We've seen this before (and I did it 2 decades ago): REPLACE MyTable.MyField with SomeOtherTable.SomeField
The implication is that "replace the MyField value in the MyTable table." But if one doesn't use the IN clause, will there ever be any chance that the update to MyTable.MyField would fail?
tia, --Mike
This email has been checked for viruses by Avast antivirus software. https://www.avast.com/antivirus
[excessive quoting removed by server]
This app seems to make a lot of assumptions (!!!) about record position. I noticed this a lot 20 years ago too. Not sure how old this code is but I thought I saw something that said early 2000s?
On 10/2/2019 2:41 PM, Frank Cazabon wrote:
Yes, it fails if you are at EOF in the currently selected table, if I recall correctly.
Frank.
Frank Cazabon
On 02/10/2019 02:14 PM, MB Software Solutions, LLC wrote:
We've seen this before (and I did it 2 decades ago): REPLACE MyTable.MyField with SomeOtherTable.SomeField
The implication is that "replace the MyField value in the MyTable table." But if one doesn't use the IN clause, will there ever be any chance that the update to MyTable.MyField would fail?
tia, --Mike
This email has been checked for viruses by Avast antivirus software. https://www.avast.com/antivirus
[excessive quoting removed by server]
Hi Mike, Imagine this scenario:
USE AA IN 0 USE BB IN 0 USE CC IN 0 Select AA && do something unsuccessful in that table: LOCATE FOR AA.Field1 = "Nonsense" && Now your replace: REPLACE BB.Field1 WITH CC.Field2
This Replace will not happen, since the working alias of the Replace is AA (which is on EOF), regardless which fields (or field aliases) are used in the fields list. Additionally the FOR and WHILE conditions are by default equated against the current alias. Therefor it's considered good practice to always add the IN clause if in doubt, so that the working alias is temporarily set to the desired alias.
wOOdy
-----Ursprüngliche Nachricht----- Von: ProFox profox-bounces@leafe.com Im Auftrag von MB Software Solutions, LLC Gesendet: Mittwoch, 2. Oktober 2019 20:14 An: profox@leafe.com Betreff: Bad style, but any chance it would ever fail to update properly?
We've seen this before (and I did it 2 decades ago): REPLACE MyTable.MyField with SomeOtherTable.SomeField
The implication is that "replace the MyField value in the MyTable table." But if one doesn't use the IN clause, will there ever be any chance that the update to MyTable.MyField would fail?
tia, --Mike
--- This email has been checked for viruses by Avast antivirus software. https://www.avast.com/antivirus
[excessive quoting removed by server]
I created this form custom method to allow me to only update the field if the value has changed. This replaces lots of unconditional REPLACEs in a form.
LPARAMETERS tcTable, tcField, tvValue LOCAL lvCurrent as Variant lvCurrent = EVALUATE(tcTable + "." + tcField) IF lvCurrent <> tvValue THEN REPLACE (tcField) WITH (tvValue) IN (tcTable) ENDIF
(This is in theory yet...implementing it soon.)
So instead of REPLACE order.cost4des WITH 'Fuel Surcharge' I call thisform.UpdateTableValue('order','cost4des','Fuel Surcharge')
On 10/2/2019 2:14 PM, MB Software Solutions, LLC wrote:
We've seen this before (and I did it 2 decades ago): REPLACE MyTable.MyField with SomeOtherTable.SomeField
The implication is that "replace the MyField value in the MyTable table." But if one doesn't use the IN clause, will there ever be any chance that the update to MyTable.MyField would fail?
tia, --Mike
This email has been checked for viruses by Avast antivirus software. https://www.avast.com/antivirus
[excessive quoting removed by server]