- Local time
- Today, 05:13
- Joined
- Jul 9, 2003
- Messages
- 17,448
In my exploration of the possibility of moving the Northwind database onto the web I have been studying the tables and I saw the "Strings" table.... I'm of the opinion that having the strings stored in a table detracts from the readability of the code and could lead to errors .... so I decided to load it up into "UberChatMaster" my custom interface for communicating with various large language models --- I've got it set up to use both a local Ollama Mistral and the online open AI Chat GPT4 .....
I presented my reservations to the local large language model which resides on my personal hard drive "Ollama Mistral" ---
[USER] 31/05/2025, 22:23:48
in the latest northwind database the developer edition there is a strings table:-
SELECT Strings.StringID, Strings.StringData, Strings.AddedBy, Strings.AddedOn, Strings.ModifiedBy, Strings.ModifiedOn
FROM Strings;
the most relevant field is the string data field and this is its content:-
StringData
Hello {0}. This is {1}.
Please enter a number between {0} and {1}.
Only orders with status of Paid can be closed.
OK to close this order?
An order can only be deleted before it is Shipped or Closed.
Are you sure you want to permanently delete this {0}?
Record cannot be saved because not all required fields have been filled out. They are highlighted for your review.
The order cannot be shipped until all Shipping related fields are filled out.
Only orders with status of Invoiced can be shipped.
There is no data for this report. Please try different criteria.
{0} is not in the list of employees. If you want to add {0} as a supervisor, you must first add them as an employee.
"{0} {1}
{2}.
"
Confirm deletion of {0}.
"{0} is not a valid US phone number. Phone numbers must be formatted as either ""(222) 333-444"" or ""555-6666"""
The example companies, organizations, products, domain names, e-mail addresses, logos, people, places, and events depicted herein are fictitious. No association with any real company, organization, product, domain name, email address, logo, person, places, or events is intended or should be inferred.
The order cannot be invoiced until all line items have a status of Allocated. Allocation happens automatically when a PO is received with sufficient quantity.
You are already on a new record.
You don't have the {0} privilege so you cannot perform this action. If you feel this is an error, discuss it with your supervisor. (TIP: login as Andrew Cencini, or give yourself rights in System Admin > Privileges)
The purchase order can only be submitted if it is in the New status.
The purchase order can only be approved if it is in the Submitted status.
Changing vendor will remove all purchase line items. OK to continue?
Has the entire purchase order been received, and are you ready to post to inventory? Orders waiting for these products will be updated.
The purchase order can only be received if it is in the Approved status.
The purchase order can only be closed if it is in the Received status.
Shipping Fee and Payment Method are required before closing the purchase order.
A purchase order can only be deleted when its Status is New or Submitted.
This quantity is less than the Minimum Re-Order Quantity of {0}. That is not allowed.
This quantity will result in an inventory level less than the Target Level of {0}. That is allowed but undesirable. Consider ordering at least {1} more.
The new status has been set.
Was the order paid today?
{0} '{1}' cannot be deleted because it has a related {2} record.
An order must have at least one line item.
You cannot change the Company Type if the Company has Orders/Purchase Orders.
The order cannot be paid until all Payment related fields are filled out.
You can't {0} if the Company has
Customer Orders ({1})
Shipper Orders ({2})
Vendor Purchase Orders ({3})
{4}
If you delete the Company any
Contacts ({0})
and/or Vendor Products ({1}) will be deleted.
Is this OK?
This option is not available on a new order.
If there are no recent orders, you may want to use Recent Dates on the System Admin form to move the dates of existing records forward.
"This Northwind Dev Edition template is brought to you by the ""Northwind Working Group"", a community team of volunteers who spent a year designing, implementing, documenting, and testing this application, and its companion Northwind Starter Edition.
The core working group members are Dawn Taylor, George Hepworth, George Young, Kim Young, and Tom van Stiphout. Michael Aldridge led the effort at Microsoft.
Many people contributed to the success of this project, including focus group members, alpha testers, former and current Access MVPs, videographers, help text editors, accessibility testers, intellectual property lawyers, and many others. It really takes a whole community.
Please share your feedback with the team. We will be watching the Access Tech Community forum, as well as other forums where Access developers hang out."
The form {0} is already open. Please close the form before opening a new {0}.
Tour the Gastronomic World with Northwind Traders!
"When Northwind Traders buyers set out to search for the Wonders of the Gastronomic World they found a lot more than seven of them. And here they are--tastefully presented in our Fall Catalog.
The beverages and confections we're featuring this fall are sure to please even the most discerning palates.
For thirst quenchers, try exotic chai, a hearty beer, or revitalizing coffee.
And for a taste of something sweet, try our brownie and cake mixes, or our rich, dark chocolate.
Our sales representatives are ready to take your orders now. For your convenience, we've included details on ordering on the last page of this catalog."
Commitment to Quality
Northwind Traders is committed to bringing you products of the highest quality from all over the world. If at any time you are not completely satisfied with any of our products, you may return them to us for a full refund.
"How to order:
To place your order, fill out this order form and return it to us. For fast personal service,
call us at 1-206-555-1417. If you prefer to order by fax, prepare your order as you would
for a mail-in, and then fax us at 1-206-555-5938."
You have changed the data and not saved it. Do you want to save it now? Selecting No will undo your changes.
Only orders with status of Shipped can be paid.
Only orders with status of New can be invoiced.
Please first complete the Order at the top of this form, before entering Order Line Items.
I think this is done so that the text is stored in a central place and then remains in volatile or easily modified in one place --- I think I may have said contrarydictatory things!!
I would imagine there are for and against for this approach I am against it myself because I think you lose the self documenting nature of code by removing the text somewhere else ... I assume the fors and against our often debated on the internet and I wondered if we could have a chat about it
[MISTRAL] 31/05/2025, 22:24:08
The approach you described, where static text is stored in a separate table like the Strings table, has its advantages and disadvantages. Here are some points for both perspectives:
**For this approach:**
1. Centralized storage of text makes it easier to maintain and update text across the application, as changes only need to be made in one place. This can be particularly useful when dealing with multi-language support.
2. It allows for a more modular design, where changes to the user interface do not require modifying the code itself. This can help keep code cleaner and easier to read.
3. It can make it simpler to translate the application into different languages since all the text is stored in one place.
**Against this approach:**
1. Removing text from the code makes it less self-documenting, as developers need to look in multiple places (code and strings table) to understand what's happening. This can lead to confusion and potential errors.
2. It may create an additional maintenance burden when trying to keep the Strings table up-to-date with changes in the code or user interface.
3. It could potentially lead to outdated text being displayed if the code and strings table are not properly synchronized.
As for whether this is often debated on the internet, it indeed is! Many developers have strong opinions about this topic, as both approaches have their merits and challenges. In general, the choice between keeping text in the code or a separate storage depends on factors such as the size and complexity of the application, team preferences, and project requirements.
It's always good to consider the trade-offs and choose the approach that best suits your specific needs. In any case, having open discussions about these topics can help lead to more informed decisions and better design choices in software development.
[USER] 31/05/2025, 22:26:22
have there been any particular discussions regarding its use in the Microsoft Access sample database the northwind developer edition
[MISTRAL] 31/05/2025, 22:26:30
It appears that the Northwind Developer Edition sample database by Microsoft does not provide much insight into specific discussions or debates about using a separate Strings table to store UI text. However, since it is an example database and not a fully-fledged product, its design choices are meant more for demonstrating various features of Microsoft Access rather than representing best practices in all aspects.
That being said, you can find many discussions on the internet about storing UI text in separate tables versus keeping it directly in the code. These discussions often take place on developer forums, blogs, and Stack Overflow, among other platforms. You may want to check out resources like these to learn more about the pros and cons of each approach and see what others have said about its use in Microsoft Access specifically.
I presented my reservations to the local large language model which resides on my personal hard drive "Ollama Mistral" ---
[USER] 31/05/2025, 22:23:48
in the latest northwind database the developer edition there is a strings table:-
SELECT Strings.StringID, Strings.StringData, Strings.AddedBy, Strings.AddedOn, Strings.ModifiedBy, Strings.ModifiedOn
FROM Strings;
the most relevant field is the string data field and this is its content:-
StringData
Hello {0}. This is {1}.
Please enter a number between {0} and {1}.
Only orders with status of Paid can be closed.
OK to close this order?
An order can only be deleted before it is Shipped or Closed.
Are you sure you want to permanently delete this {0}?
Record cannot be saved because not all required fields have been filled out. They are highlighted for your review.
The order cannot be shipped until all Shipping related fields are filled out.
Only orders with status of Invoiced can be shipped.
There is no data for this report. Please try different criteria.
{0} is not in the list of employees. If you want to add {0} as a supervisor, you must first add them as an employee.
"{0} {1}
{2}.
"
Confirm deletion of {0}.
"{0} is not a valid US phone number. Phone numbers must be formatted as either ""(222) 333-444"" or ""555-6666"""
The example companies, organizations, products, domain names, e-mail addresses, logos, people, places, and events depicted herein are fictitious. No association with any real company, organization, product, domain name, email address, logo, person, places, or events is intended or should be inferred.
The order cannot be invoiced until all line items have a status of Allocated. Allocation happens automatically when a PO is received with sufficient quantity.
You are already on a new record.
You don't have the {0} privilege so you cannot perform this action. If you feel this is an error, discuss it with your supervisor. (TIP: login as Andrew Cencini, or give yourself rights in System Admin > Privileges)
The purchase order can only be submitted if it is in the New status.
The purchase order can only be approved if it is in the Submitted status.
Changing vendor will remove all purchase line items. OK to continue?
Has the entire purchase order been received, and are you ready to post to inventory? Orders waiting for these products will be updated.
The purchase order can only be received if it is in the Approved status.
The purchase order can only be closed if it is in the Received status.
Shipping Fee and Payment Method are required before closing the purchase order.
A purchase order can only be deleted when its Status is New or Submitted.
This quantity is less than the Minimum Re-Order Quantity of {0}. That is not allowed.
This quantity will result in an inventory level less than the Target Level of {0}. That is allowed but undesirable. Consider ordering at least {1} more.
The new status has been set.
Was the order paid today?
{0} '{1}' cannot be deleted because it has a related {2} record.
An order must have at least one line item.
You cannot change the Company Type if the Company has Orders/Purchase Orders.
The order cannot be paid until all Payment related fields are filled out.
You can't {0} if the Company has
Customer Orders ({1})
Shipper Orders ({2})
Vendor Purchase Orders ({3})
{4}
If you delete the Company any
Contacts ({0})
and/or Vendor Products ({1}) will be deleted.
Is this OK?
This option is not available on a new order.
If there are no recent orders, you may want to use Recent Dates on the System Admin form to move the dates of existing records forward.
"This Northwind Dev Edition template is brought to you by the ""Northwind Working Group"", a community team of volunteers who spent a year designing, implementing, documenting, and testing this application, and its companion Northwind Starter Edition.
The core working group members are Dawn Taylor, George Hepworth, George Young, Kim Young, and Tom van Stiphout. Michael Aldridge led the effort at Microsoft.
Many people contributed to the success of this project, including focus group members, alpha testers, former and current Access MVPs, videographers, help text editors, accessibility testers, intellectual property lawyers, and many others. It really takes a whole community.
Please share your feedback with the team. We will be watching the Access Tech Community forum, as well as other forums where Access developers hang out."
The form {0} is already open. Please close the form before opening a new {0}.
Tour the Gastronomic World with Northwind Traders!
"When Northwind Traders buyers set out to search for the Wonders of the Gastronomic World they found a lot more than seven of them. And here they are--tastefully presented in our Fall Catalog.
The beverages and confections we're featuring this fall are sure to please even the most discerning palates.
For thirst quenchers, try exotic chai, a hearty beer, or revitalizing coffee.
And for a taste of something sweet, try our brownie and cake mixes, or our rich, dark chocolate.
Our sales representatives are ready to take your orders now. For your convenience, we've included details on ordering on the last page of this catalog."
Commitment to Quality
Northwind Traders is committed to bringing you products of the highest quality from all over the world. If at any time you are not completely satisfied with any of our products, you may return them to us for a full refund.
"How to order:
To place your order, fill out this order form and return it to us. For fast personal service,
call us at 1-206-555-1417. If you prefer to order by fax, prepare your order as you would
for a mail-in, and then fax us at 1-206-555-5938."
You have changed the data and not saved it. Do you want to save it now? Selecting No will undo your changes.
Only orders with status of Shipped can be paid.
Only orders with status of New can be invoiced.
Please first complete the Order at the top of this form, before entering Order Line Items.
I think this is done so that the text is stored in a central place and then remains in volatile or easily modified in one place --- I think I may have said contrarydictatory things!!
I would imagine there are for and against for this approach I am against it myself because I think you lose the self documenting nature of code by removing the text somewhere else ... I assume the fors and against our often debated on the internet and I wondered if we could have a chat about it
[MISTRAL] 31/05/2025, 22:24:08
The approach you described, where static text is stored in a separate table like the Strings table, has its advantages and disadvantages. Here are some points for both perspectives:
**For this approach:**
1. Centralized storage of text makes it easier to maintain and update text across the application, as changes only need to be made in one place. This can be particularly useful when dealing with multi-language support.
2. It allows for a more modular design, where changes to the user interface do not require modifying the code itself. This can help keep code cleaner and easier to read.
3. It can make it simpler to translate the application into different languages since all the text is stored in one place.
**Against this approach:**
1. Removing text from the code makes it less self-documenting, as developers need to look in multiple places (code and strings table) to understand what's happening. This can lead to confusion and potential errors.
2. It may create an additional maintenance burden when trying to keep the Strings table up-to-date with changes in the code or user interface.
3. It could potentially lead to outdated text being displayed if the code and strings table are not properly synchronized.
As for whether this is often debated on the internet, it indeed is! Many developers have strong opinions about this topic, as both approaches have their merits and challenges. In general, the choice between keeping text in the code or a separate storage depends on factors such as the size and complexity of the application, team preferences, and project requirements.
It's always good to consider the trade-offs and choose the approach that best suits your specific needs. In any case, having open discussions about these topics can help lead to more informed decisions and better design choices in software development.
[USER] 31/05/2025, 22:26:22
have there been any particular discussions regarding its use in the Microsoft Access sample database the northwind developer edition
[MISTRAL] 31/05/2025, 22:26:30
It appears that the Northwind Developer Edition sample database by Microsoft does not provide much insight into specific discussions or debates about using a separate Strings table to store UI text. However, since it is an example database and not a fully-fledged product, its design choices are meant more for demonstrating various features of Microsoft Access rather than representing best practices in all aspects.
That being said, you can find many discussions on the internet about storing UI text in separate tables versus keeping it directly in the code. These discussions often take place on developer forums, blogs, and Stack Overflow, among other platforms. You may want to check out resources like these to learn more about the pros and cons of each approach and see what others have said about its use in Microsoft Access specifically.
Last edited: