Skip to content

Commit c53caa7

Browse files
committed
refs #281 MSAccess fixes
override insert_record - Jackcess does not like columns set to None
1 parent 2179061 commit c53caa7

File tree

2 files changed

+15
-1
lines changed

2 files changed

+15
-1
lines changed
0 Bytes
Binary file not shown.

pysimplesql/pysimplesql.py

+15-1
Original file line numberDiff line numberDiff line change
@@ -7937,7 +7937,6 @@ def duplicate_record(self, dataset: DataSet, children: bool) -> pd.DataFrame:
79377937
f"{dataset.get_current(dataset.pk_column)});"
79387938
),
79397939
# don't next_pk(), because child can be plural.
7940-
# don't next_pk(), because child can be plural.
79417940
f"UPDATE {tmp_child} SET {pk_column} = NULL;",
79427941
f"UPDATE {tmp_child} SET {fk_column} = {pk}",
79437942
f"INSERT INTO {child} SELECT * FROM {tmp_child};",
@@ -7953,6 +7952,21 @@ def duplicate_record(self, dataset: DataSet, children: bool) -> pd.DataFrame:
79537952
# we will just send and empty DataFrame
79547953
return Result.set(lastrowid=pk)
79557954

7955+
def insert_record(self, table: str, pk: int, pk_column: str, row: dict):
7956+
# Remove the pk column
7957+
row = {self.quote_column(k): v for k, v in row.items() if k != pk_column}
7958+
7959+
# quote appropriately
7960+
table = self.quote_table(table)
7961+
7962+
# Remove the primary key column to ensure autoincrement is used!
7963+
query = (
7964+
f"INSERT INTO {table} ({', '.join(key for key in row)}) VALUES "
7965+
f"({','.join(self.placeholder for _ in range(len(row)))}); "
7966+
)
7967+
values = [value for key, value in row.items()]
7968+
return self.execute(query, tuple(values))
7969+
79567970

79577971
# --------------------------
79587972
# TYPEDDICTS AND TYPEALIASES

0 commit comments

Comments
 (0)