how do you get ALL fields in csv to be double quoted - even blank flields - like "". SQLite will not import ,, must be ,"",

Example:

1. INSERT INTO cdata (First_Name,Last_Name,Display_Name,Primary_Email,Secondary_Email,Phone1,Phone2,Phone3,Address,City,State,ZipCode,Country,Address2,Notes)
VALUES (“US Post Office”,“Gov”,"Gov, US Post Office",“2082632338”,);

2. INSERT INTO cdata (First_Name,Last_Name,Display_Name,Primary_Email,Secondary_Email,Phone1,Phone2,Phone3,Address,City,State,ZipCode,Country,Address2,Notes)
VALUES (“US Post Office”,“Gov”,“Gov, US Post Office”,"","","2082632338","","","","","","","","","");

  1. will not work importing into SQLite with blank fields ,

  2. does work with ,"","","","","",""

You seem to ask a wrong question. You ask something (“how do you get ALL fields in csv to be double quoted”) without the actually relevant part, which seems to be “How do I properly import CSV data into a SQLite DB … I currently use this … I open the CSV and use each its line verbatim in an SQL INSERT statement …”.

For which you might get much better responses.

There is GitHub - open-ods/import_tool: Tool for importing ODS XML data to SQL-style databases, which I have not tried.

You could also make a new sheet with =IF(ISBLANK('oldsheet'.A1);"";A1) in cell A1 and copy that formula so it repeats your existing sheet, and export that to csv.

OpenODS is not related to ODF .ods spreadsheet files.

The second hint to have a formula create an empty string and tick Quote all text cells in the export dialog works though.

Needing a specialized variant of writing to csv may justify to use specialized code. Fortunately it’s really simple to do the task with a few lines of Basic code, if no parametrization is needed. See the code below for an exampßle:

Sub extremelySimplified()
doc = ThisComponent : sheets = doc.Sheets
trgFilePath = InputBox("Asking for target file", _
              "Please enter the complete path of the csv to write: ", doc.URL)
If trgFilePath= doc.URL Then trgFilePath = trgFilePath & ".csv"
trgFilePath = ConvertToUrl(trgFilePath)
quoteCharacter = Chr(34) : separator = ";" REM The semicolon should be preferred if not ...
REM The quoteCharacter must be assured to not occur inside a data value.
srcSheetName = InputBox("Asking for source sheet", _
               "Please enter the name of the source sheet: ", sheets(0).Name) 
dataSheet = sheets.getByName(srcSheetName)
cellCur = dataSheet.createCursor() : cellCur.gotoStartOfUsedArea(False) : cellCur.gotoEndOfUsedArea(True)
dataArr = cellCur.getDataArray()   : uR = Ubound(dataArr)               : uC = Ubound(dataArr(0))
Dim lines(uR )
For r = 0 To uR
  For c = 0 To uC
    If TypeName(dataArr(r)(c))="Double" Then
      REM Numbers are written as formatted for the sheet.
      dataArr(r)(c) = quoteCharacter & _
                      cellCur.getCellByPosition(c, r).String & quoteCharacter
    Else
      dataArr(r)(c) = quoteCharacter & dataArr(r)(c) & quoteCharacter
    End If
  Next c
  lines(r) = Join(dataArr(r), separator)
Next r
fn = FreeFile
Open trgFilePath For Output As #fn
For r = 0 To uR
  Print #fn, lines(r)
Next r
Close #fn 
End Sub  

Adapt the details as needed.

(Just had another look and found I had written “Asc(34)” in place of the correct “Chr(34)”. Now fixed.)